国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

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

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

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

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