亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種瀏覽器中進程間通信的方法、裝置和瀏覽器的制造方法

文檔序號:6515885閱讀:105來源:國知局
一種瀏覽器中進程間通信的方法、裝置和瀏覽器的制造方法
【專利摘要】本發(fā)明公開了一種瀏覽器中進程間通信的方法、裝置和瀏覽器,所述方法包括:在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載時,采用所述第一瀏覽器內(nèi)核進程接收觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令;采用所述I/O信息分發(fā)線程獲取所述操作指令,將所述操作指令發(fā)送至當(dāng)前網(wǎng)頁對應(yīng)的標簽頁面子線程中;采用所述標簽頁面子線程按照所述操作指令對當(dāng)前網(wǎng)頁進行渲染;通過所述第二I/O線程將渲染后的網(wǎng)頁發(fā)送至所述第一I/O線程中;采用所述第一瀏覽器內(nèi)核進程對渲染后的網(wǎng)頁進行顯示。本發(fā)明提高了網(wǎng)頁的加載速度和效率。
【專利說明】—種瀏覽器中進程間通信的方法、裝置和瀏覽器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及瀏覽器的【技術(shù)領(lǐng)域】,特別是涉及一種瀏覽器中進程間通信的方法、一種瀏覽器中進程間通信的裝置和一種瀏覽器。
【背景技術(shù)】
[0002]瀏覽器從架構(gòu)上可以分為兩個部分,即內(nèi)核和外殼。瀏覽器內(nèi)核是指瀏覽器的核心部分,可以分成兩部分:渲染引擎(layout engineer或者Rendering Engine)和JS(JavaScript)引擎。渲染引擎主要負責(zé)取得網(wǎng)頁的內(nèi)容(包括HTML、XML、圖像等)、整理信息(如加入CSS (Cascading Style Sheets,層疊樣式表單)等),以及計算網(wǎng)頁的顯示方式,然后會輸出至顯示器或打印機。瀏覽器內(nèi)核的不同對于網(wǎng)頁的語法解釋會有不同,所以渲染的效果也不相同。所有網(wǎng)頁瀏覽器、電子郵件客戶端以及其它需要編輯、顯示網(wǎng)絡(luò)內(nèi)容的應(yīng)用程序都需要內(nèi)核。JS引擎則是解析Javascript語言,執(zhí)行Javascript語言來實現(xiàn)網(wǎng)頁的動態(tài)效果。
[0003]瀏覽器內(nèi)核的種類有很多,目前比較常見的瀏覽器內(nèi)核有微軟的IE瀏覽器使用的Trident內(nèi)核,F(xiàn)irefox瀏覽器使用的Gecko內(nèi)核,蘋果的Safari瀏覽器和Google的Chrome瀏覽器使用的Webkit內(nèi)核,以及,Opera瀏覽器采用的Presto內(nèi)核。
[0004]當(dāng)用戶通過瀏覽器發(fā)起一個瀏覽網(wǎng)頁的請求時,瀏覽器通過內(nèi)核從目標網(wǎng)站下載網(wǎng)頁的內(nèi)容,然后分析網(wǎng)頁內(nèi)容,執(zhí)行腳本,計算排版,最后輸出到顯示器顯示給用戶。每個瀏覽器具有一個內(nèi)核,不管用戶通過一個瀏覽器進程打開多少個網(wǎng)頁,瀏覽器都使用同一個內(nèi)核解釋執(zhí)行。
[0005]但是,這種單內(nèi)核瀏覽器有很大的局限性,因為網(wǎng)頁往往是按照某個內(nèi)核支持的網(wǎng)絡(luò)標準制作的,對于某個特定內(nèi)核支持的網(wǎng)絡(luò)標準,其他內(nèi)核可能無法很好地支持(甚至無法支持)。例如,用戶使用Firefox瀏覽器瀏覽網(wǎng)頁,F(xiàn)irefox瀏覽器的內(nèi)核能夠很好地支持W3C標準,因此使用該瀏覽器可以瀏覽按照W3C標準制作的網(wǎng)頁。但如果用戶想要瀏覽招商銀行網(wǎng)頁使用網(wǎng)絡(luò)銀行,F(xiàn)irefox瀏覽器就無法滿足這個用戶需求。因為招商銀行網(wǎng)站的網(wǎng)絡(luò)銀行功能需要ActiveX插件功能,而該功能可能只有IE的內(nèi)核才能支持,這樣用戶在使用Firefox瀏覽器的情況下就無法使用招商銀行的網(wǎng)絡(luò)銀行功能了。

【發(fā)明內(nèi)容】

[0006]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種瀏覽器中進程間通信的方法和相應(yīng)的一種瀏覽器中進程間通信的裝置,以及一種瀏覽器。
[0007]依據(jù)本發(fā)明的一個方面,提供了一種瀏覽器中進程間通信的方法,所述瀏覽器包括第一瀏覽器內(nèi)核進程和第二瀏覽器內(nèi)核進程,所述第一瀏覽器內(nèi)核進程包括第一 I/O線程,所述第二瀏覽器內(nèi)核進程包括第二 I/O線程、I/O信息分發(fā)線程和窗口線程,所述窗口線程包括一個或多個標簽頁面子線程,所述方法包括:[0008]在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載時,采用所述第一瀏覽器內(nèi)核進程接收觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令;
[0009]采用所述I/O信息分發(fā)線程獲取所述操作指令,將所述操作指令發(fā)送至當(dāng)前網(wǎng)頁對應(yīng)的標簽頁面子線程中;
[0010]采用所述標簽頁面子線程按照所述操作指令對當(dāng)前網(wǎng)頁進行渲染;
[0011]通過所述第二 I/O線程將渲染后的網(wǎng)頁發(fā)送至所述第一 I/O線程中;
[0012]采用所述第一瀏覽器內(nèi)核進程對渲染后的網(wǎng)頁進行顯示。
[0013]可選地,所述采用所述第一瀏覽器內(nèi)核進程接收觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令的步驟包括:
[0014]采用所述第一 I/O線程接收到觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令。
[0015]可選地,所述采用所述I/O信息分發(fā)線程獲取所述操作指令的步驟包括:
[0016]采用所述I/O信息分發(fā)線程從內(nèi)存中獲取所述操作指令的拷貝。
[0017]可選地,所述操作指令中包括第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識;
[0018]所述將所述操作指令發(fā)送至當(dāng)前網(wǎng)頁對應(yīng)的標簽頁面子線程中的步驟包括:
[0019]提取所述操作指令中的第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識;
[0020]采用系統(tǒng)消息循環(huán)指令將所述操作指令發(fā)送至所述第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識對應(yīng)的標簽頁面子線程中。
[0021]可選地,通過以下方式在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載:
[0022]在所述第一瀏覽器內(nèi)核進程中采用當(dāng)前網(wǎng)頁的URL查找當(dāng)前網(wǎng)頁匹配的瀏覽器內(nèi)核進程;
[0023]當(dāng)查找到時,判定匹配的瀏覽器內(nèi)核進程為第二瀏覽器內(nèi)核進程。
[0024]根據(jù)本發(fā)明的另一方面,提供了一種瀏覽器中進程間通信的裝置,所述瀏覽器包括第一瀏覽器內(nèi)核進程和第二瀏覽器內(nèi)核進程,所述第一瀏覽器內(nèi)核進程包括第一 I/o線程,所述第二瀏覽器內(nèi)核進程包括第二 I/o線程、I/O信息分發(fā)線程和窗口線程,所述窗口線程包括一個或多個標簽頁面子線程,所述裝置包括:
[0025]操作指令接收模塊,適于在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載時,采用所述第一瀏覽器內(nèi)核進程接收觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令;
[0026]操作指令獲取模塊,適于采用所述I/O信息分發(fā)線程獲取所述操作指令;
[0027]操作指令發(fā)送模塊,適于將所述操作指令發(fā)送至當(dāng)前網(wǎng)頁對應(yīng)的標簽頁面子線程中;
[0028]渲染模塊,適于采用所述標簽頁面子線程按照所述操作指令對當(dāng)前網(wǎng)頁進行渲染;
[0029]網(wǎng)頁發(fā)送模塊,適于通過所述第二 I/O線程將渲染后的網(wǎng)頁發(fā)送至所述第一 I/O線程中;
[0030]網(wǎng)頁顯示模塊,適于采用所述第一瀏覽器內(nèi)核進程對渲染后的網(wǎng)頁進行顯示。
[0031]可選地,所述操作指令接收模塊還適于:
[0032]采用所述第一 I/O線程接收到觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令。[0033]可選地,所述操作指令獲取模塊還適于:
[0034]采用所述I/O信息分發(fā)線程從內(nèi)存中獲取所述操作指令的拷貝。
[0035]可選地,所述操作指令中包括第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識;
[0036]所述操作指令發(fā)送模塊還適于:
[0037]提取所述操作指令中的第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識;
[0038]采用系統(tǒng)消息循環(huán)指令將所述操作指令發(fā)送至所述第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識對應(yīng)的標簽頁面子線程中。
[0039]可選地,通過以下方式在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載:
[0040]在所述第一瀏覽器內(nèi)核進程中采用當(dāng)前網(wǎng)頁的URL查找當(dāng)前網(wǎng)頁匹配的瀏覽器內(nèi)核進程;
[0041]當(dāng)查找到時,判定匹配的瀏覽器內(nèi)核進程為第二瀏覽器內(nèi)核進程。
[0042]根據(jù)本發(fā)明的另一方面,提供了一種瀏覽器,所述瀏覽器包括第一瀏覽器內(nèi)核進程和第二瀏覽器內(nèi)核進程,所述第一瀏覽器內(nèi)核進程包括第一 I/o線程,所述第二瀏覽器內(nèi)核進程包括第二 I/o線程、I/O信息分發(fā)線程和窗口線程,所述窗口線程包括一個或多個標簽頁面子線程,所述瀏覽器包括:
[0043]操作指令接收模塊,適于在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載時,采用所述第一瀏覽器內(nèi)核進程接收觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令;
[0044]操作指令獲取模塊,適于采用所述I/O信息分發(fā)線程獲取所述操作指令;
[0045]操作指令發(fā)送模塊,適于將所述操作指令發(fā)送至當(dāng)前網(wǎng)頁對應(yīng)的標簽頁面子線程中;
[0046]渲染模塊,適于采用所述標簽頁面子線程按照所述操作指令對當(dāng)前網(wǎng)頁進行渲染;
[0047]網(wǎng)頁發(fā)送模塊,適于通過所述第二 I/O線程將渲染后的網(wǎng)頁發(fā)送至所述第一 I/O線程中;
[0048]網(wǎng)頁顯示模塊,適于采用所述第一瀏覽器內(nèi)核進程對渲染后的網(wǎng)頁進行顯示。
[0049]本發(fā)明可以在判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載時,使得瀏覽器的兩個瀏覽器內(nèi)核進程進行切換,可以使用第一瀏覽器內(nèi)核進程的操作指令可以準確而高效地轉(zhuǎn)達到指定的網(wǎng)頁的標簽頁面子線程中進行,實現(xiàn)網(wǎng)頁的正常渲染和加載,返回第一瀏覽器內(nèi)核進程中進行顯示,提高了網(wǎng)頁的加載速度和效率。
[0050]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【專利附圖】

【附圖說明】
[0051]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:[0052]圖1示出了根據(jù)本發(fā)明一個實施例的一種瀏覽器中進程間通信的方法實施例的步驟流程圖;以及,
[0053]圖2示出了根據(jù)本發(fā)明一個實施例的一種瀏覽器中進程間通信的裝置實施例的結(jié)構(gòu)框圖。
【具體實施方式】
[0054]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
[0055]參照圖1,示出了根據(jù)本發(fā)明一個實施例的一種瀏覽器中進程間通信的方法實施例的步驟流程圖,其中,所述瀏覽器可以包括第一瀏覽器內(nèi)核進程和第二瀏覽器內(nèi)核進程,所述第一瀏覽器內(nèi)核進程可以包括第一 I/O (input/output,輸入/輸出)線程,所述第二瀏覽器內(nèi)核進程包括可以第二 I/O線程、I/O信息分發(fā)線程和窗口線程,所述窗口線程可以包括一個或多個標簽頁面子線程,具體可以包括以下步驟:
[0056]步驟101,在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載時,采用所述第一瀏覽器內(nèi)核進程接收觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令;
[0057]需要說明的是,瀏覽器可以包括兩個或兩個以上的瀏覽器內(nèi)核,第一瀏覽器內(nèi)核可以為瀏覽器當(dāng)前默認使用的瀏覽器內(nèi)核,該默認的瀏覽器內(nèi)核可以是系統(tǒng)設(shè)置的,也可以使用戶設(shè)置的,具體可以是Webkit內(nèi)核等高性能的瀏覽器內(nèi)核。當(dāng)然,還可以是Gecko內(nèi)核、Presto內(nèi)核等等,本發(fā)明實施例對此不加以限制。
[0058]第二瀏覽器內(nèi)核可以為瀏覽器內(nèi)置的除第一瀏覽器內(nèi)核外的其他瀏覽器內(nèi)核,可以在某些情況適配當(dāng)前網(wǎng)頁的加載,可以為Trident內(nèi)核(即IE內(nèi)核),包括IE-com內(nèi)核(兼容的IE內(nèi)核)和/或IE-stand內(nèi)核。當(dāng)然,還可以是Gecko內(nèi)核、Presto內(nèi)核等等,本發(fā)明實施例對此不加以限制。
[0059]進程(Process)是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ),可以是一個正在執(zhí)行的程序;可以是計算機中正在運行的程序?qū)嵗豢梢允强梢苑峙浣o處理器并由處理器執(zhí)行的一個實體;可以是由單一順序的執(zhí)行顯示,一個當(dāng)前狀態(tài)和一組相關(guān)的系統(tǒng)資源所描述的活動單元。
[0060]線程(thread),有時被稱為輕量級進程(Lightweight Process, LWP),是程序執(zhí)行流的最小單元。線程是進程中的一個實體,是被系統(tǒng)獨立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。
[0061]一個線程可以創(chuàng)建和撤消另一個線程,同一進程中的多個線程之間可以并發(fā)執(zhí)行。每一個程序都至少有一個線程,若程序只有一個線程,那就是程序本身。線程是程序中一個單一的順序控制流程。在單個程序中同時運行多個線程完成不同的工作,稱為多線程。
[0062]IPC (Inter-Process Communication,進程間通信),是進程間通訊一種機制,操作系統(tǒng)的進程和線程可以通過它交換數(shù)據(jù)和消息。
[0063]瀏覽器中,第一 1/0線程和第二 1/0線程可以用于數(shù)據(jù)的傳輸;窗口線程可以為瀏覽器的標簽網(wǎng)頁(Tab page)進行對應(yīng)的網(wǎng)頁處理,具體地,標簽頁面子線程可以為對應(yīng)的網(wǎng)頁進行網(wǎng)頁資源加載處理。
[0064]在本發(fā)明的一種優(yōu)選實施例中,可以通過以下方式在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載:
[0065]子步驟S11,在所述第一瀏覽器內(nèi)核進程中采用當(dāng)前網(wǎng)頁的URL查找當(dāng)前網(wǎng)頁匹配的瀏覽器內(nèi)核進程;
[0066]子步驟S12,當(dāng)查找到時,判定匹配的瀏覽器內(nèi)核進程為第二瀏覽器內(nèi)核進程。
[0067]在具體實現(xiàn)中,獲知用戶請求的網(wǎng)頁與瀏覽器內(nèi)核進程之間的適配關(guān)系(即當(dāng)前網(wǎng)頁適于采用哪個瀏覽器內(nèi)核進程進行加載)的方法可以有多種。
[0068]其中一種方法,可以根據(jù)從請求信息獲得的內(nèi)容以及預(yù)置規(guī)則,獲知用戶請求的網(wǎng)頁與所述瀏覽器內(nèi)核進程之間的適配關(guān)系。
[0069]具體而言,預(yù)置規(guī)則可以包括特定適配規(guī)則、通用適配規(guī)則和/或不適配規(guī)則,在請求加載網(wǎng)頁的過程中,可以根據(jù)特定適配規(guī)則、通用適配規(guī)則和/或不適配規(guī)則,獲知用戶請求的網(wǎng)頁與瀏覽器內(nèi)核進程之間的適配關(guān)系。其中,特定適配規(guī)則可以包括網(wǎng)頁與瀏覽器內(nèi)核進程之間的適配關(guān)系,通用適配規(guī)則可以包括為用戶選擇平均加載速度最快的瀏覽器內(nèi)核進程或為用戶選擇對網(wǎng)絡(luò)標準支持最好的瀏覽器內(nèi)核進程,不適配規(guī)則可以包括網(wǎng)頁與瀏覽器內(nèi)核進程之間的不適配關(guān)系。
[0070]由于瀏覽器還會根據(jù)接收到的加載請求向?qū)?yīng)的服務(wù)器發(fā)送關(guān)于加載網(wǎng)頁的加載請求信息,服務(wù)器會針對加載請求信息返回響應(yīng)信息,在響應(yīng)信息中會攜帶一些網(wǎng)頁的頁面內(nèi)容等信息,因此在此種情形下,還可以根據(jù)從服務(wù)器返回的針對加載請求信息的響應(yīng)信息獲得的內(nèi)容以及預(yù)置規(guī)則,重新獲知與用戶請求的網(wǎng)頁適配的瀏覽器內(nèi)核進程;如果重新獲知的適配的瀏覽器內(nèi)核進程與此前基于請求信息獲知的適配瀏覽器內(nèi)核進程不同,則選擇重新獲知的適配瀏覽器內(nèi)核進程加載用戶請求的網(wǎng)頁。
[0071]另外一種方法中,由于瀏覽器還會根據(jù)接收到的加載請求向?qū)?yīng)的服務(wù)器發(fā)送關(guān)于加載網(wǎng)頁的加載請求信息,服務(wù)器會針對加載請求信息返回響應(yīng)信息,在響應(yīng)信息中會攜帶一些網(wǎng)頁的頁面內(nèi)容等信息,因此在該方法中,可以直接根據(jù)從服務(wù)器返回的針對加載請求信息返回的響應(yīng)信息獲取的內(nèi)容以及預(yù)置規(guī)則,獲知用戶請求的網(wǎng)頁與瀏覽器內(nèi)核進程之間的適配關(guān)系。
[0072]當(dāng)然,也可以根據(jù)從加載請求獲得的內(nèi)容、從服務(wù)器返回的針對加載請求信息返回的響應(yīng)信息獲取的內(nèi)容以及預(yù)置規(guī)則,共同獲知用戶請求的網(wǎng)頁與瀏覽器內(nèi)核進程之間的適配關(guān)系。
[0073]另外,在使用上述各實施例提供的方法加載網(wǎng)頁時,還可以對加載用戶請求的網(wǎng)頁的情況進行檢測;如果出現(xiàn)符合預(yù)置的瀏覽器內(nèi)核進程切換條件的現(xiàn)象,則根據(jù)預(yù)置規(guī)則重新獲知與該網(wǎng)頁適配的瀏覽器內(nèi)核進程;選擇重新獲知的適配的瀏覽器內(nèi)核進程加載用戶請求的網(wǎng)頁。其中,符合預(yù)置的瀏覽器內(nèi)核進程切換條件的現(xiàn)象可以包括:在加載過程中檢測所加載速度較慢,或者在加載完畢后檢測到網(wǎng)頁沒有正常顯示,等等。
[0074]在本發(fā)明的一種優(yōu)選實施例中,所述步驟101可以包括如下子步驟:
[0075]子步驟S21,采用所述第一 I/O線程接收到觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令。
[0076]操作指令可以為用戶進行的網(wǎng)頁操作的具體指示,例如前進、后退等等,具體可以包括操作名和/或操作參數(shù)。[0077]當(dāng)?shù)谝粸g覽器內(nèi)核進程接收到操作指令之后,可以緩存在本地的內(nèi)存中。
[0078]步驟102,采用所述I/O信息分發(fā)線程獲取所述操作指令;
[0079]當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進行加載,為提高網(wǎng)頁加載的效率,可以采用第二瀏覽器內(nèi)核進程進行加載,則需要獲取對應(yīng)的操作指。
[0080]在本發(fā)明的一種優(yōu)選實施例中,所述步驟102可以包括如下子步驟:
[0081]子步驟S31,采用所述I/O信息分發(fā)線程從內(nèi)存中獲取所述操作指令的拷貝。
[0082]在具體實現(xiàn)中,當(dāng)操作指令被緩存在本地內(nèi)存中時,可以從內(nèi)存中獲取該操作指令的拷貝。
[0083]步驟103,將所述操作指令發(fā)送至當(dāng)前網(wǎng)頁對應(yīng)的標簽頁面子線程中;
[0084]在I/O信息分發(fā)線程獲取到該操作指令后,便可以發(fā)送至當(dāng)前網(wǎng)頁對應(yīng)的標簽頁面子線程,用以進行網(wǎng)頁資源的加載。
[0085]在本發(fā)明的一種優(yōu)選實施例中,所述操作指令中包括第二瀏覽器內(nèi)核進程標識(Process ID)和標簽頁面子線程標識(Tab page ID);所述步驟103可以包括如下子步驟:
[0086]子步驟S41,提取所述操作指令中的第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識;
[0087]子步驟S42,采用系統(tǒng)消息循環(huán)指令將所述操作指令發(fā)送至所述第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識對應(yīng)的標簽頁面子線程中。
[0088]第二瀏覽器內(nèi)核進程標識可以用于標識第二瀏覽器內(nèi)核進程,標簽頁面子線程標識可以用于標識標簽頁面子線程,第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識可以指示唯一的當(dāng)前頁面對應(yīng)的標簽頁面子線程。
[0089]系統(tǒng)消息循環(huán)指令(PostMessage)是Windows API (Application ProgrammingInterface,應(yīng)用程序編程接口)中的一個常用函數(shù),用于將一條消息放入到消息隊列中。該函數(shù)將一個消息放入(寄送)到與指定窗口創(chuàng)建的線程相聯(lián)系消息隊列里,不等待線程處理消息就返回,是異步消息模式。消息隊列里的消息通過調(diào)用GetMessage函數(shù)和PeekMessage函數(shù)取得。
[0090]I/O信息分發(fā)線程的一個具體示例可以如下:
[0091]
【權(quán)利要求】
1.一種瀏覽器中進程間通信的方法,所述瀏覽器包括第一瀏覽器內(nèi)核進程和第二瀏覽器內(nèi)核進程,所述第一瀏覽器內(nèi)核進程包括第一 I/o線程,所述第二瀏覽器內(nèi)核進程包括第二 I/o線程、I/O信息分發(fā)線程和窗口線程,所述窗口線程包括一個或多個標簽頁面子線程,所述方法包括: 在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載時,采用所述第一瀏覽器內(nèi)核進程接收觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令; 采用所述I/o信息分發(fā)線程獲取所述操作指令,將所述操作指令發(fā)送至當(dāng)前網(wǎng)頁對應(yīng)的標簽頁面子線程中; 采用所述標簽頁面子線程按照所述操作指令對當(dāng)前網(wǎng)頁進行渲染; 通過所述第二 I/o線程將渲染后的網(wǎng)頁發(fā)送至所述第一 I/O線程中; 采用所述第一瀏覽器內(nèi)核進程對渲染后的網(wǎng)頁進行顯示。
2.如權(quán)利要求1所述的方法,其特征在于,所述采用所述第一瀏覽器內(nèi)核進程接收觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令的步驟包括: 采用所述第一 I/o線程接收到觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令。
3.如權(quán)利要求1所述的方法,其特征在于,所述采用所述I/O信息分發(fā)線程獲取所述操作指令的步驟包括: 采用所述I/o信息分發(fā)線程從內(nèi)存中獲取所述操作指令的拷貝。
4.如權(quán)利要求1所述的方法,其特征在于,所述操作指令中包括第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識;` 所述將所述操作指令發(fā)送至當(dāng)前網(wǎng)頁對應(yīng)的標簽頁面子線程中的步驟包括: 提取所述操作指令中的第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識; 采用系統(tǒng)消息循環(huán)指令將所述操作指令發(fā)送至所述第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識對應(yīng)的標簽頁面子線程中。
5.如權(quán)利要求1所述的方法,其特征在于,通過以下方式在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載: 在所述第一瀏覽器內(nèi)核進程中采用當(dāng)前網(wǎng)頁的URL查找當(dāng)前網(wǎng)頁匹配的瀏覽器內(nèi)核進程; 當(dāng)查找到時,判定匹配的瀏覽器內(nèi)核進程為第二瀏覽器內(nèi)核進程。
6.一種瀏覽器中進程間通信的裝置,所述瀏覽器包括第一瀏覽器內(nèi)核進程和第二瀏覽器內(nèi)核進程,所述第一瀏覽器內(nèi)核進程包括第一 I/O線程,所述第二瀏覽器內(nèi)核進程包括第二 I/o線程、I/O信息分發(fā)線程和窗口線程,所述窗口線程包括一個或多個標簽頁面子線程,所述裝置包括: 操作指令接收模塊,適于在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載時,采用所述第一瀏覽器內(nèi)核進程接收觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令;操作指令獲取模塊,適于采用所述I/o信息分發(fā)線程獲取所述操作指令; 操作指令發(fā)送模塊,適于將所述操作指令發(fā)送至當(dāng)前網(wǎng)頁對應(yīng)的標簽頁面子線程中; 渲染模塊,適于采用所述標簽頁面子線程按照所述操作指令對當(dāng)前網(wǎng)頁進行渲染; 網(wǎng)頁發(fā)送模塊,適于通過所述第二 I/o線程將渲染后的網(wǎng)頁發(fā)送至所述第一 I/O線程中;網(wǎng)頁顯示模塊,適于采用所述第一瀏覽器內(nèi)核進程對渲染后的網(wǎng)頁進行顯示。
7.如權(quán)利要求6所述的裝置,其特征在于,所述操作指令接收模塊還適于: 采用所述第一 I/O線程接收到觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令。
8.如權(quán)利要求6所述的裝置,其特征在于,所述操作指令獲取模塊還適于: 采用所述I/O信息分發(fā)線程從內(nèi)存中獲取所述操作指令的拷貝。
9.如權(quán)利要求6所述的裝置,其特征在于,所述操作指令中包括第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識; 所述操作指令發(fā)送模塊還適于: 提取所述操作指令中的第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識; 采用系統(tǒng)消息循環(huán)指令將所述操作指令發(fā)送至所述第二瀏覽器內(nèi)核進程標識和標簽頁面子線程標識對應(yīng)的標簽頁面子線程中。
10.一種瀏覽器,所述瀏覽器包括第一瀏覽器內(nèi)核進程和第二瀏覽器內(nèi)核進程,所述第一瀏覽器內(nèi)核進程包括第一 I/o線程,所述第二瀏覽器內(nèi)核進程包括第二 I/O線程、I/O信息分發(fā)線程和窗口線程,所述窗口線程包括一個或多個標簽頁面子線程,所述瀏覽器包括: 操作指令接收模塊,適于在所述第一瀏覽器內(nèi)核進程判定當(dāng)前網(wǎng)頁適于采用第二瀏覽器內(nèi)核進程加載時,采用所述第一瀏覽器內(nèi)核進程接收觸發(fā)當(dāng)前網(wǎng)頁加載的操作指令;操作指令獲取模塊,適于采用所述I/o信息分發(fā)線程獲取所述操作指令; 操作指令發(fā)送模塊,適于將所述操作指令發(fā)送至當(dāng)前網(wǎng)頁對應(yīng)的標簽頁面子線程中; 渲染模塊,適于采用所述標簽頁面子線程按照所述操作指令對當(dāng)前網(wǎng)頁進行渲染; 網(wǎng)頁發(fā)送模塊,適于通過所述第二 I/o線程將渲染后的網(wǎng)頁發(fā)送至所述第一 I/O線程中; 網(wǎng)頁顯示模塊,適于采用所述第一瀏覽器內(nèi)核進程對渲染后的網(wǎng)頁進行顯示。
【文檔編號】G06F17/30GK103559097SQ201310492797
【公開日】2014年2月5日 申請日期:2013年10月18日 優(yōu)先權(quán)日:2013年10月18日
【發(fā)明者】宗小斌, 任寰 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1