一種進(jìn)行網(wǎng)頁(yè)加載的方法、裝置和瀏覽器的制造方法
【專利摘要】本發(fā)明公開了一種進(jìn)行網(wǎng)頁(yè)加載的方法,包括:在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL;依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源;依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核;當(dāng)所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核;采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載;其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。本發(fā)明提高了網(wǎng)頁(yè)的加載速度。
【專利說(shuō)明】一種進(jìn)行網(wǎng)頁(yè)加載的方法、裝置和瀏覽器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及瀏覽器的【技術(shù)領(lǐng)域】,特別是涉及一種進(jìn)行網(wǎng)頁(yè)加載的方法、一種進(jìn)行網(wǎng)頁(yè)加載的裝置和一種瀏覽器。
【背景技術(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)核的種類有很多,目前比較常見(jiàn)的瀏覽器內(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)用戶通過(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)程打開多少個(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)行網(wǎng)頁(yè)加載的方法和相應(yīng)的一種進(jìn)行網(wǎng)頁(yè)加載的裝置,以及一種瀏覽器。
[0007]依據(jù)本發(fā)明的一個(gè)方面,提供了一種進(jìn)行網(wǎng)頁(yè)加載的方法,包括:
[0008]在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL;
[0009]依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源;[0010]依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核;
[0011]當(dāng)所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核;
[0012]采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載;
[0013]其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
[0014]可選地,所述采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載的步驟包括:
[0015]當(dāng)監(jiān)聽到所述第二瀏覽器內(nèi)核請(qǐng)求加載當(dāng)前網(wǎng)頁(yè)時(shí),采用所述第一瀏覽器內(nèi)核生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求;
[0016]依據(jù)所述第二加載請(qǐng)求采用所述第一瀏覽器內(nèi)核獲取第一網(wǎng)頁(yè)資源;
[0017]采用所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取第二網(wǎng)頁(yè)資源;
[0018]采用所述第一瀏覽器內(nèi)核將所述第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源傳輸?shù)剿龅诙g覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
[0019]可選地,所述第一瀏覽器內(nèi)核包括第一內(nèi)核進(jìn)程和第二內(nèi)核進(jìn)程,所述第二瀏覽器內(nèi)核包括第三內(nèi)核進(jìn)程。
[0020]可選地,所述在瀏覽器側(cè)采用所述第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求的步驟包括:
[0021]在瀏覽器側(cè)通過(guò)所述第一內(nèi)核進(jìn)程接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求。
[0022]可選地,所述依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源的步驟包括:
[0023]采用所述第一內(nèi)核進(jìn)程訪問(wèn)所述URL開始獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源。
[0024]可選地,所述依據(jù)所述當(dāng)前網(wǎng)頁(yè)的URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核的步驟包括:
[0025]在預(yù)置的資源映射表中查找所述URL對(duì)應(yīng)的JavaScript資源。
[0026]在預(yù)置的插件映射表中查找所述JavaScript資源對(duì)應(yīng)的插件對(duì)象;
[0027]確定所述插件對(duì)象適于運(yùn)行的瀏覽器內(nèi)核為當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核。
[0028]可選地,所述啟動(dòng)所述第二瀏覽器內(nèi)核的步驟包括:
[0029]中止所述第一內(nèi)核進(jìn)程獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源;
[0030]啟動(dòng)所述第三內(nèi)核進(jìn)程;
[0031]采用所述第一內(nèi)核進(jìn)程將當(dāng)前網(wǎng)頁(yè)的URL傳輸給所述第三內(nèi)核進(jìn)程。
[0032]可選地,所述當(dāng)監(jiān)聽到所述第二瀏覽器內(nèi)核請(qǐng)求加載當(dāng)前網(wǎng)頁(yè)時(shí),采用所述第一瀏覽器內(nèi)核生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求的步驟包括:
[0033]調(diào)用網(wǎng)絡(luò)編程接口 WinInet啟動(dòng)管理會(huì)話類CInternetSession ;
[0034]當(dāng)在所述管理會(huì)話類CInternetSession中監(jiān)聽到所述第二內(nèi)核進(jìn)程加載網(wǎng)頁(yè)的請(qǐng)求時(shí),提取所述請(qǐng)求中的URL ;
[0035]判斷所述請(qǐng)求中的URL與當(dāng)前網(wǎng)頁(yè)的URL是否相同;若是,則將當(dāng)前網(wǎng)頁(yè)的URL傳輸?shù)剿龅诙?nèi)核進(jìn)程中;
[0036]采用所述第二內(nèi)核進(jìn)程針對(duì)當(dāng)前網(wǎng)頁(yè)的URL生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求。[0037]可選地,所述依據(jù)所述第二加載請(qǐng)求采用所述第一瀏覽器內(nèi)核獲取第一網(wǎng)頁(yè)資源的步驟包括:
[0038]提取所述第二加載請(qǐng)求中當(dāng)前網(wǎng)頁(yè)的URL ;
[0039]判斷瀏覽器緩存中是否有所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源;若是,則采用所述第二內(nèi)核進(jìn)程提取所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源。
[0040]可選地,所述采用所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取第二網(wǎng)頁(yè)資源的步驟包括:
[0041]在所述第二內(nèi)核進(jìn)程中,將用戶代理UserAgent設(shè)置為指示第二瀏覽器內(nèi)核的標(biāo)識(shí);
[0042]通過(guò)訪問(wèn)當(dāng)前網(wǎng)頁(yè)的URL向服務(wù)器側(cè)請(qǐng)求加載當(dāng)前網(wǎng)頁(yè);所述請(qǐng)求中包括第二網(wǎng)頁(yè)資源的標(biāo)識(shí);所述服務(wù)器用于提取第二網(wǎng)頁(yè)資源;
[0043]接收所述服務(wù)器側(cè)返回的第二網(wǎng)頁(yè)資源。
[0044]可選地,所述采用所述第一瀏覽器內(nèi)核將所述第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源傳輸?shù)剿龅诙g覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載的步驟包括:
[0045]在所述第二內(nèi)核進(jìn)程中采用進(jìn)程間通信IPC分別將所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源傳輸?shù)剿龅谌齼?nèi)核進(jìn)程中;
[0046]采用所述第三內(nèi)核進(jìn)程采用所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源渲染當(dāng)前網(wǎng)頁(yè)。
[0047]根據(jù)本發(fā)明的另一方面,提供了一種進(jìn)行網(wǎng)頁(yè)加載的裝置,包括:
[0048]第一加載請(qǐng)求接收模塊,適于在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL ;
[0049]第一網(wǎng)頁(yè)資源獲取模塊,適于依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源;
[0050]瀏覽器內(nèi)核匹配模塊,適于依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核;
[0051]第二瀏覽器內(nèi)核啟動(dòng)模塊,適于在所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核;
[0052]網(wǎng)頁(yè)加載模塊,適于采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載;
[0053]其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
[0054]可選地,所述網(wǎng)頁(yè)加載模塊還適于:
[0055]當(dāng)監(jiān)聽到所述第二瀏覽器內(nèi)核請(qǐng)求加載當(dāng)前網(wǎng)頁(yè)時(shí),采用所述第一瀏覽器內(nèi)核生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求;
[0056]依據(jù)所述第二加載請(qǐng)求采用所述第一瀏覽器內(nèi)核獲取第一網(wǎng)頁(yè)資源;
[0057]采用所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取第二網(wǎng)頁(yè)資源;
[0058]采用所述第一瀏覽器內(nèi)核將所述第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源傳輸?shù)剿龅诙g覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
[0059]可選地,所述第一瀏覽器內(nèi)核包括第一內(nèi)核進(jìn)程和第二內(nèi)核進(jìn)程,所述第二瀏覽器內(nèi)核包括第三內(nèi)核進(jìn)程。[0060]可選地,所述第一加載請(qǐng)求接收模塊還適于:
[0061]在瀏覽器側(cè)通過(guò)所述第一內(nèi)核進(jìn)程接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求。
[0062]可選地,所述第一網(wǎng)頁(yè)資源獲取模塊還適于:
[0063]采用所述第一內(nèi)核進(jìn)程訪問(wèn)所述URL開始獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源。
[0064]可選地,所述瀏覽器內(nèi)核匹配模塊還適于:
[0065]在預(yù)置的資源映射表中查找所述URL對(duì)應(yīng)的JavaScript資源。
[0066]在預(yù)置的插件映射表中查找所述JavaScript資源對(duì)應(yīng)的插件對(duì)象;
[0067]確定所述插件對(duì)象適于運(yùn)行的瀏覽器內(nèi)核為當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核。
[0068]可選地,所述第二瀏覽器內(nèi)核啟動(dòng)模塊還適于:
[0069]中止所述第一內(nèi)核進(jìn)程獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源;
[0070]啟動(dòng)所述第三內(nèi)核進(jìn)程;
[0071]采用所述第一內(nèi)核進(jìn)程將當(dāng)前網(wǎng)頁(yè)的URL傳輸給所述第三內(nèi)核進(jìn)程。
[0072]可選地,所述網(wǎng)頁(yè)加載模塊還適于:
[0073]調(diào)用網(wǎng)絡(luò)編程接口 WinInet啟動(dòng)管理會(huì)話類CInternetSession ;
[0074]當(dāng)在所述管理會(huì)話類CInternetSession中監(jiān)聽到所述第二內(nèi)核進(jìn)程加載網(wǎng)頁(yè)的請(qǐng)求時(shí),提取所述請(qǐng)求中的URL ;
[0075]判斷所述請(qǐng)求中的URL與當(dāng)前網(wǎng)頁(yè)的URL是否相同;若是,則將當(dāng)前網(wǎng)頁(yè)的URL傳輸?shù)剿龅诙?nèi)核進(jìn)程中;
[0076]采用所述第二內(nèi)核進(jìn)程針對(duì)當(dāng)前網(wǎng)頁(yè)的URL生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求。
[0077]可選地,所述網(wǎng)頁(yè)加載模塊還適于:
[0078]提取所述第二加載請(qǐng)求中當(dāng)前網(wǎng)頁(yè)的URL;
[0079]判斷瀏覽器緩存中是否有所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源;若是,則采用所述第二內(nèi)核進(jìn)程提取所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源。
[0080]可選地,所述網(wǎng)頁(yè)加載模塊還適于:
[0081]在所述第二內(nèi)核進(jìn)程中,將用戶代理UserAgent設(shè)置為指示第二瀏覽器內(nèi)核的標(biāo)識(shí);
[0082]通過(guò)訪問(wèn)當(dāng)前網(wǎng)頁(yè)的URL向服務(wù)器側(cè)請(qǐng)求加載當(dāng)前網(wǎng)頁(yè);所述請(qǐng)求中包括第二網(wǎng)頁(yè)資源的標(biāo)識(shí);所述服務(wù)器用于提取第二網(wǎng)頁(yè)資源;
[0083]接收所述服務(wù)器側(cè)返回的第二網(wǎng)頁(yè)資源。
[0084]可選地,所述網(wǎng)頁(yè)加載模塊還適于:
[0085]在所述第二內(nèi)核進(jìn)程中采用進(jìn)程間通信IPC分別將所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源傳輸?shù)剿龅谌齼?nèi)核進(jìn)程中;
[0086]采用所述第三內(nèi)核進(jìn)程采用所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源渲染當(dāng)前網(wǎng)頁(yè)。
[0087]根據(jù)本發(fā)明的另一方面,提供了一種瀏覽器,包括:
[0088]第一加載請(qǐng)求接收模塊,適于在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL ;
[0089]第一網(wǎng)頁(yè)資源獲取模塊,適于依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源;[0090]瀏覽器內(nèi)核匹配模塊,適于依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核;
[0091]第二瀏覽器內(nèi)核啟動(dòng)模塊,適于在所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核;
[0092]網(wǎng)頁(yè)加載模塊,適于采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載;
[0093]其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
[0094]本發(fā)明中,當(dāng)判定當(dāng)前網(wǎng)頁(yè)適于采用第二瀏覽器內(nèi)核加載時(shí)啟動(dòng)第二瀏覽器內(nèi)核,進(jìn)行瀏覽器內(nèi)核的切換,對(duì)于原瀏覽器內(nèi)核進(jìn)行請(qǐng)求時(shí)獲取的已緩存的網(wǎng)頁(yè)資源的進(jìn)行重復(fù)使用,并請(qǐng)求獲取到未進(jìn)行緩存的網(wǎng)頁(yè)資源,然后通過(guò)IPC將獲取的全部網(wǎng)頁(yè)資源發(fā)送到第二瀏覽器內(nèi)核中進(jìn)行渲染加載,避免了重復(fù)獲取網(wǎng)頁(yè)資源,提高了網(wǎng)頁(yè)的加載速度。
[0095]本發(fā)明中,在網(wǎng)頁(yè)進(jìn)行渲染前進(jìn)行適配瀏覽器內(nèi)核的判斷,通過(guò)使用了資源映射表查找當(dāng)前網(wǎng)頁(yè)URL對(duì)應(yīng)的JavaScript資源,在通過(guò)插件映射表查找該JavaScript資源對(duì)應(yīng)的插件對(duì)象,最后確定適配的瀏覽器內(nèi)核,提高了采用瀏覽器內(nèi)核加載網(wǎng)頁(yè)的適配程度,提高了加載網(wǎng)頁(yè)的效率。
[0096]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【專利附圖】
【附圖說(shuō)明】
[0097]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0098]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)行網(wǎng)頁(yè)加載的方法實(shí)施例1的步驟流程圖;
[0099]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)行網(wǎng)頁(yè)加載的方法實(shí)施例2的步驟流程圖;以及,
[0100]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)行網(wǎng)頁(yè)加載的裝置實(shí)施例的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0101]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0102]參照?qǐng)D1,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)行網(wǎng)頁(yè)加載的方法實(shí)施例1的步驟流程圖,具體可以包括以下步驟:
[0103]步驟101,在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL ;
[0104]步驟102,依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源;
[0105]步驟103,依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核;
[0106]步驟104,當(dāng)所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核;
[0107]步驟105,采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載;
[0108]其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
[0109]本發(fā)明中,當(dāng)判定當(dāng)前網(wǎng)頁(yè)適于采用第二瀏覽器內(nèi)核加載時(shí)啟動(dòng)第二瀏覽器內(nèi)核,進(jìn)行瀏覽器內(nèi)核的切換,對(duì)于原瀏覽器內(nèi)核進(jìn)行請(qǐng)求時(shí)獲取的已緩存的網(wǎng)頁(yè)資源的進(jìn)行重復(fù)使用,并請(qǐng)求獲取到未進(jìn)行緩存的網(wǎng)頁(yè)資源,然后通過(guò)IPC將獲取的全部網(wǎng)頁(yè)資源發(fā)送到第二瀏覽器內(nèi)核中進(jìn)行渲染加載,避免了重復(fù)獲取網(wǎng)頁(yè)資源,提高了網(wǎng)頁(yè)的加載速度。
[0110]參照?qǐng)D2,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)行網(wǎng)頁(yè)加載的方法實(shí)施例2的步驟流程圖,具體可以包括以下步驟:
[0111]步驟201,在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL ;
[0112]需要說(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ì)此不加以限制。
[0113]當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求可以是指用戶發(fā)出的加載某個(gè)網(wǎng)頁(yè)的指示。例如,用戶可以通過(guò)點(diǎn)擊某鏈接來(lái)打開一個(gè)網(wǎng)頁(yè),或者在地址欄輸入網(wǎng)址來(lái)打開一個(gè)網(wǎng)頁(yè)等等。當(dāng)用戶點(diǎn)擊某鏈接的指示時(shí),就相當(dāng)于接收到了用戶加載網(wǎng)頁(yè)的加載請(qǐng)求;同樣,當(dāng)在地址欄輸入某網(wǎng)址并點(diǎn)擊確定按鈕或按下回車鍵時(shí),也相當(dāng)于接收到了用戶加載網(wǎng)頁(yè)的加載請(qǐng)求。
[0114]其中,加載請(qǐng)求的內(nèi)容可以包括用戶請(qǐng)求加載的網(wǎng)頁(yè)的標(biāo)識(shí)和/或網(wǎng)頁(yè)的特征。網(wǎng)頁(yè)標(biāo)識(shí)可以是能夠代表一個(gè)唯一確定的網(wǎng)頁(yè)的信息,例如統(tǒng)一資源標(biāo)識(shí)符(UniformResource Identifier, URI),統(tǒng)一資源標(biāo)識(shí)符又具體可以包括統(tǒng)一資源定位符(UniformResource Locator, URL),或者統(tǒng)一資源名稱(Uniform Resource Name, URN)等等。
[0115]在具體實(shí)現(xiàn)中,第一瀏覽器內(nèi)核可以包括第一內(nèi)核進(jìn)程和第二內(nèi)核進(jìn)程。
[0116]內(nèi)核進(jìn)程可以是瀏覽器執(zhí)行程序和分配資源的單位。
[0117]在本發(fā)明的一種優(yōu)選實(shí)施例中,步驟201具體可以包括如下子步驟:
[0118]子步驟S11,在瀏覽器側(cè)通過(guò)所述第一內(nèi)核進(jìn)程接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求。
[0119]具體實(shí)現(xiàn)中,第一內(nèi)核進(jìn)程可以獲取當(dāng)前網(wǎng)頁(yè)的URL,當(dāng)然也可以是獲取當(dāng)前網(wǎng)頁(yè)的URI和/或URN等網(wǎng)頁(yè)標(biāo)識(shí),本發(fā)明實(shí)施例對(duì)此不加限制。
[0120]步驟202,依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源;[0121]當(dāng)接收到用戶加載網(wǎng)頁(yè)的加載請(qǐng)求時(shí),可以通過(guò)第一內(nèi)核進(jìn)程進(jìn)行正常的網(wǎng)頁(yè)加載。
[0122]在本發(fā)明的一種優(yōu)選實(shí)施例中,步驟202具體可以包括如下子步驟:
[0123]子步驟S21,采用所述第一內(nèi)核進(jìn)程訪問(wèn)所述URL開始獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源。
[0124]具體而言,可以采用第一內(nèi)核進(jìn)程直接訪問(wèn)URL加載當(dāng)前網(wǎng)頁(yè)。當(dāng)然,也可以采用URI和/或URN等網(wǎng)頁(yè)標(biāo)識(shí)進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
[0125]以采用第一內(nèi)核進(jìn)程訪問(wèn)URL加載當(dāng)前網(wǎng)頁(yè)為例,加載網(wǎng)頁(yè)的過(guò)程可以如下:
[0126]1.當(dāng)檢測(cè)到用戶輸入網(wǎng)址(假設(shè)是個(gè)HTML頁(yè)面,并且是第一次訪問(wèn))時(shí),瀏覽器向服務(wù)器發(fā)出請(qǐng)求加載該網(wǎng)址指示的網(wǎng)頁(yè),服務(wù)器返回對(duì)應(yīng)的HTML文本;
[0127]2.瀏覽器開始載入HTML文本的源代碼,當(dāng)檢測(cè)到< head >標(biāo)簽內(nèi)有一個(gè)< link>標(biāo)簽時(shí),則需要引用外部CSS文件;
[0128]3.瀏覽器向服務(wù)器發(fā)出CSS文件的請(qǐng)求,服務(wù)器返回對(duì)應(yīng)的CSS文件;
[0129]4.瀏覽器繼續(xù)載入HTML文本中< body >部分的代碼,此時(shí)CSS文件已經(jīng)接收到,可以開始渲染網(wǎng)頁(yè);
[0130]5.當(dāng)瀏覽器在HTML文本中檢測(cè)到一個(gè)< img >標(biāo)簽時(shí),需要引用了一張圖片,則向服務(wù)器發(fā)送加載圖片的請(qǐng)求。此時(shí)瀏覽器不會(huì)等待圖片下載完,而是繼續(xù)渲染后面的代碼;
[0131]6.服務(wù)器返回圖片文件,由于圖片占用了一定面積,影響了后面段落的排布,因此瀏覽器需要重新渲染這部分代碼;
[0132]7.當(dāng)瀏覽器檢測(cè)到一個(gè)包含一行JavaScript代碼的< script >標(biāo)簽時(shí),貝U立即運(yùn)行;
[0133]8.采用JavaScript腳本執(zhí)行了上述語(yǔ)句,其命令瀏覽器隱藏掉代碼中的某個(gè)< div > (style, display=”none”),由于缺少了< div >元素,瀏覽器需要重新渲染這部分代碼;
[0134]9.當(dāng)檢測(cè)到< /HTML >時(shí),渲染完成;
[0135]10.當(dāng)用戶點(diǎn)擊界面中的“換膚”按鈕,JavaScript讓瀏覽器換了< link >標(biāo)簽的CSS路徑;
[0136]11.瀏覽器采用< div >、< span >、< ul >、< Ii >等各元素,并向服務(wù)器請(qǐng)求新的CSS文件,重新渲染頁(yè)面。
[0137]在通過(guò)第一內(nèi)核進(jìn)程進(jìn)行正常的網(wǎng)頁(yè)加載,可以判斷當(dāng)前請(qǐng)求加載的網(wǎng)頁(yè)所適配的瀏覽器內(nèi)核。
[0138]步驟203,依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核;
[0139]在具體實(shí)現(xiàn)中,獲知用戶請(qǐng)求的網(wǎng)頁(yè)與瀏覽器內(nèi)核之間的適配關(guān)系(即當(dāng)前網(wǎng)頁(yè)適于采用哪個(gè)瀏覽器內(nèi)核進(jìn)行加載)的方法可以有多種。
[0140]其中一種方法,可以根據(jù)從請(qǐng)求信息獲得的內(nèi)容以及預(yù)置規(guī)則,獲知用戶請(qǐng)求的網(wǎng)頁(yè)與所述瀏覽器內(nèi)核之間的適配關(guān)系。
[0141]具體而言,預(yù)置規(guī)則可以包括特定適配規(guī)則、通用適配規(guī)則和/或不適配規(guī)則,在請(qǐng)求加載網(wǎng)頁(yè)的過(guò)程中,可以根據(jù)特定適配規(guī)則、通用適配規(guī)則和/或不適配規(guī)則,獲知用戶請(qǐng)求的網(wǎng)頁(yè)與瀏覽器內(nèi)核之間的適配關(guān)系。其中,特定適配規(guī)則可以包括網(wǎng)頁(yè)與內(nèi)核之間的適配關(guān)系,通用適配規(guī)則可以包括為用戶選擇平均加載速度最快的瀏覽器內(nèi)核或?yàn)橛脩暨x擇對(duì)網(wǎng)絡(luò)標(biāo)準(zhǔn)支持最好的瀏覽器內(nèi)核,不適配規(guī)則可以包括網(wǎng)頁(yè)與內(nèi)核之間的不適配關(guān)系。
[0142]由于瀏覽器還會(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)核;如果重新獲知的適配的瀏覽器內(nèi)核與此前基于請(qǐng)求信息獲知的適配瀏覽器內(nèi)核不同,則選擇重新獲知的適配瀏覽器內(nèi)核加載用戶請(qǐng)求的網(wǎng)頁(yè)。
[0143]另外一種方法中,由于瀏覽器還會(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)核之間的適配關(guān)系。
[0144]當(dāng)然,也可以根據(jù)從加載請(qǐng)求獲得的內(nèi)容、從服務(wù)器返回的針對(duì)加載請(qǐng)求信息返回的響應(yīng)信息獲取的內(nèi)容以及預(yù)置規(guī)則,共同獲知用戶請(qǐng)求的網(wǎng)頁(yè)與瀏覽器內(nèi)核之間的適配關(guān)系。
[0145]另外,在使用上述各實(shí)施例提供的方法加載網(wǎng)頁(yè)時(shí),還可以對(duì)加載用戶請(qǐng)求的網(wǎng)頁(yè)的情況進(jìn)行檢測(cè);如果出現(xiàn)符合預(yù)置內(nèi)核切換條件的現(xiàn)象,則根據(jù)預(yù)置規(guī)則重新獲知與該網(wǎng)頁(yè)適配的瀏覽器內(nèi)核;選擇重新獲知的適配的瀏覽器內(nèi)核加載用戶請(qǐng)求的網(wǎng)頁(yè)。其中,符合預(yù)置內(nèi)核切換條件的現(xiàn)象可以包括:在加載過(guò)程中檢測(cè)所加載速度較慢,或者在加載完畢后檢測(cè)到網(wǎng)頁(yè)沒(méi)有正常顯示,等等。
[0146]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟203具體可以包括如下子步驟:
[0147]子步驟S31,在預(yù)置的資源映射表中查找所述URL對(duì)應(yīng)的JavaScript資源。
[0148]子步驟S32,在預(yù)置的插件映射表中查找所述JavaScript資源對(duì)應(yīng)的插件對(duì)象;
[0149]子步驟S33,確定所述插件對(duì)象適于運(yùn)行的瀏覽器內(nèi)核為當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核。
[0150]加載網(wǎng)頁(yè)需要的頁(yè)面資源可以包括HTML頁(yè)面中的JavaScript、css、圖片和/或字體文件等資源。JavaSCript、CSS、圖片和/或字體文件等頁(yè)面資源可以用于頁(yè)面的渲染。
[0151]其中,JavaScript是一種腳本語(yǔ)言,其源代碼在發(fā)往客戶端運(yùn)行之前不需經(jīng)過(guò)編譯,而是將文本格式的字符代碼發(fā)送給瀏覽器由瀏覽器解釋運(yùn)行。解釋語(yǔ)言的弱點(diǎn)是安全性較差,而且在JavaScript中,如果一條運(yùn)行不了,那么下面的語(yǔ)言也無(wú)法運(yùn)行。而且由于每次重新加載都會(huì)重新解譯,加載后,有些代碼會(huì)延遲至運(yùn)行時(shí)才解譯,甚至?xí)啻谓庾g,所以網(wǎng)頁(yè)加載的速度較慢。
[0152]因此,為了提高網(wǎng)頁(yè)加載的效率,可以調(diào)用JavaScript所適配的瀏覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。例如,各瀏覽器平均加載網(wǎng)頁(yè)速度可能各不相同,根據(jù)在同等條件下的測(cè)試,Presto內(nèi)核執(zhí)行同等JavaScript所需的時(shí)間僅有Trident和Gecko內(nèi)核的約1/3。
[0153]在具體實(shí)現(xiàn)中,可以在瀏覽器或者服務(wù)器預(yù)置資源映射表,資源映射表中可以記載加載不同網(wǎng)頁(yè)(具體可以采用URL進(jìn)行標(biāo)識(shí)不同的網(wǎng)頁(yè),也可以采用URI和/或URN標(biāo)識(shí)不同的網(wǎng)頁(yè))所對(duì)應(yīng)的頁(yè)面資源,具體可以包括JavaScript。
[0154]可以在瀏覽器或服務(wù)器預(yù)置插件映射表,插件映射表中可以記載不同JavaScript所對(duì)應(yīng)啟動(dòng)的插件對(duì)象。在具體實(shí)現(xiàn)中,使用第一瀏覽器內(nèi)核進(jìn)行網(wǎng)頁(yè)資源的請(qǐng)求后獲得網(wǎng)頁(yè)資源,并返回到瀏覽器側(cè)緩存中的網(wǎng)頁(yè)資源數(shù)據(jù),例如HTML文本、圖片、視頻元素,以及其中嵌入的例如JavaScript或者插件對(duì)象,這些數(shù)據(jù)會(huì)被瀏覽器在網(wǎng)頁(yè)加載時(shí)進(jìn)行渲染后進(jìn)行顯示。在解析這些網(wǎng)頁(yè)資源進(jìn)行渲染前,可以查詢由瀏覽器進(jìn)行維護(hù)的JavaScript的名稱。這些維護(hù)的JavaScript可以用于與不同的網(wǎng)頁(yè)進(jìn)行匹配,即在不同網(wǎng)頁(yè)的URL會(huì)對(duì)應(yīng)不同的JavaScript的匹配項(xiàng)。
[0155]還可以在在瀏覽器或者服務(wù)器預(yù)置瀏覽器內(nèi)核映射表。瀏覽器內(nèi)核映射表中可以記載加載不同插件對(duì)象所適配的瀏覽器內(nèi)核。具體實(shí)現(xiàn)中,可以對(duì)網(wǎng)頁(yè)資源中的插件對(duì)象進(jìn)行加載和初始化時(shí)的監(jiān)聽:對(duì)于網(wǎng)頁(yè)中的〈embed〉元素,其中的CLSID (指系統(tǒng)對(duì)于不同的應(yīng)用程序,文件類型,OLE對(duì)象,特殊文件夾以及各種系統(tǒng)組件分配一個(gè)唯一表示的ID代碼)會(huì)被作為網(wǎng)頁(yè)資源的一部分而被識(shí)別到,CLSID是網(wǎng)頁(yè)插件對(duì)象的唯一識(shí)別碼。對(duì)于匹配到指定的插件對(duì)象時(shí),就切換到對(duì)應(yīng)的瀏覽器內(nèi)核,以使用該瀏覽器內(nèi)核實(shí)現(xiàn)網(wǎng)頁(yè)的再渲染和加載。
[0156]例如,在預(yù)置資源映射表中查找到在當(dāng)前網(wǎng)頁(yè)下點(diǎn)擊進(jìn)行文件下載需要激活一JavaScript腳本,此JavaScript腳本會(huì)對(duì)應(yīng)啟動(dòng)一下載工具,此下載工具更適合運(yùn)行在Trident內(nèi)核的瀏覽器下,則獲知適配關(guān)系為當(dāng)前網(wǎng)頁(yè)適于采用Trident內(nèi)核進(jìn)行加載。
[0157]需要說(shuō)明的是,資源映射表、插件映射表、瀏覽器內(nèi)核映射表中的一個(gè)、兩個(gè)或三個(gè)可以合并在同一個(gè)映射表中。
[0158]相對(duì)應(yīng)地,若在瀏覽器預(yù)置資源映射表、插件映射表和/或?yàn)g覽器內(nèi)核映射表,貝1J可以在本地進(jìn)行對(duì)應(yīng)的查找。若在服務(wù)器預(yù)置資源映射表、插件映射表和/或?yàn)g覽器內(nèi)核映射表,則可以發(fā)送對(duì)應(yīng)的查找請(qǐng)求,并接收服務(wù)器返回的信息。
[0159]步驟204,當(dāng)所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核;
[0160]一般而言,第二瀏覽器內(nèi)核可以為瀏覽器內(nèi)置的除第一瀏覽器內(nèi)核外的其他瀏覽器內(nèi)核,可以在某些情況適配當(dāng)前網(wǎng)頁(yè)的加載,可以為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ā)明實(shí)施例對(duì)此不加以限制。
[0161]特別地,當(dāng)當(dāng)前網(wǎng)頁(yè)適于采用第一瀏覽器內(nèi)核進(jìn)行加載時(shí),可以直接采用第一瀏覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
[0162]在實(shí)際應(yīng)用中,第二瀏覽器內(nèi)核可以包括第三內(nèi)核進(jìn)程。需要說(shuō)明的是,一個(gè)瀏覽器可以運(yùn)行一個(gè)或多個(gè)內(nèi)核進(jìn)程,并不僅僅限制在第一內(nèi)核進(jìn)程、第二內(nèi)核進(jìn)程和第三內(nèi)核進(jìn)程。
[0163]在本發(fā)明的一種優(yōu)選實(shí)施例中,步驟204具體可以包括如下子步驟:
[0164]子步驟S41,中止所述第一內(nèi)核進(jìn)程獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源;
[0165]子步驟S42,啟動(dòng)所述第三內(nèi)核進(jìn)程;
[0166]子步驟S43,采用所述第一內(nèi)核進(jìn)程將當(dāng)前網(wǎng)頁(yè)的URL傳輸給所述第三內(nèi)核進(jìn)程。[0167]在確定進(jìn)行瀏覽器內(nèi)核轉(zhuǎn)換后,會(huì)停止當(dāng)前瀏覽器內(nèi)核(即第一瀏覽器內(nèi)核)加載當(dāng)前網(wǎng)頁(yè)。當(dāng)前通過(guò)第一內(nèi)核進(jìn)程所能加載到的網(wǎng)頁(yè)資源可以稱之為第一網(wǎng)頁(yè)資源。需要說(shuō)明的是,何時(shí)獲知用戶請(qǐng)求的網(wǎng)頁(yè)與瀏覽器內(nèi)核之間的適配關(guān)系,何時(shí)就中止采用第一內(nèi)核進(jìn)程獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源。
[0168]第一內(nèi)核進(jìn)程可以將當(dāng)前網(wǎng)頁(yè)URL傳遞到第三內(nèi)核進(jìn)程中,也可以將當(dāng)前網(wǎng)頁(yè)的URI和/或URN等網(wǎng)頁(yè)標(biāo)識(shí)傳遞到第三內(nèi)核進(jìn)程中,本發(fā)明實(shí)施例對(duì)此不加以限制。
[0169]步驟205,當(dāng)監(jiān)聽到所述第二瀏覽器內(nèi)核請(qǐng)求加載當(dāng)前網(wǎng)頁(yè)時(shí),采用所述第一瀏覽器內(nèi)核生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求;
[0170]在切換到第二瀏覽器內(nèi)核后,可以通過(guò)第二瀏覽內(nèi)核使用當(dāng)前網(wǎng)頁(yè)的URL去發(fā)起一個(gè)新的瀏覽器導(dǎo)航。
[0171]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟205具體可以包括如下子步驟:
[0172]子步驟S51:調(diào)用網(wǎng)絡(luò)編程接口 WinInet啟動(dòng)管理會(huì)話類CInternetSession ;
[0173]子步驟S52:當(dāng)在所述管理會(huì)話類CInternetSession中監(jiān)聽到所述第二內(nèi)核進(jìn)程加載網(wǎng)頁(yè)的請(qǐng)求時(shí),提取所述請(qǐng)求中的URL ;
[0174]子步驟S53:判斷所述請(qǐng)求中的URL與當(dāng)前網(wǎng)頁(yè)的URL是否相同;若是,則將當(dāng)前網(wǎng)頁(yè)的URL傳輸?shù)剿龅诙?nèi)核進(jìn)程中;
[0175]子步驟S54:采用所述第二內(nèi)核進(jìn)程針對(duì)當(dāng)前網(wǎng)頁(yè)的URL生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求。
[0176]在第三內(nèi)核進(jìn)程中注冊(cè)監(jiān)聽HTTP請(qǐng)求或者HTTPS請(qǐng)求,在WinInet (是WindowsInternet擴(kuò)展應(yīng)用程序編程接口,是專為開發(fā)具有Internet功能的客戶端應(yīng)用程序而提供的,可以支持HTTP協(xié)議,F(xiàn)TP協(xié)議和GOPHER協(xié)議)中進(jìn)行一個(gè)CinternetSession對(duì)象,可以對(duì)每一個(gè)監(jiān)聽到的HTTP請(qǐng)求或者HTTPS請(qǐng)求,繼而識(shí)別出該HTTP請(qǐng)求中或者HTTPS請(qǐng)求的URL。若判斷該URL為當(dāng)前網(wǎng)頁(yè)的URL,則依據(jù)當(dāng)前網(wǎng)頁(yè)的URL進(jìn)行IPCdnter-ProcessCommunication,進(jìn)程間通信,指至少兩個(gè)進(jìn)程或線程間傳送數(shù)據(jù)或信號(hào)的一些技術(shù)或方法)將第三內(nèi)核進(jìn)程中的URL傳遞給第三內(nèi)核進(jìn)程中。在第三內(nèi)核進(jìn)程中依據(jù)該URL進(jìn)行一個(gè)基于第一瀏覽器內(nèi)核的HTTP請(qǐng)求。
[0177]步驟206,依據(jù)所述第二加載請(qǐng)求采用所述第一瀏覽器內(nèi)核獲取第一網(wǎng)頁(yè)資源;
[0178]所述第一網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核針對(duì)所述第一加載請(qǐng)求所獲取并緩存的網(wǎng)頁(yè)資源;
[0179]第一網(wǎng)頁(yè)資源已存儲(chǔ)在本地的緩存中,為避免重復(fù)請(qǐng)求網(wǎng)頁(yè)資源,進(jìn)一步加快網(wǎng)頁(yè)資源的請(qǐng)求,可以直接采用該第一網(wǎng)頁(yè)資源進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
[0180]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟206具體可以包括如下子步驟:
[0181]子步驟S51,提取所述第二加載請(qǐng)求中當(dāng)前網(wǎng)頁(yè)的URL;
[0182]子步驟S52,判斷瀏覽器緩存中是否有所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源;若是,則采用所述第二內(nèi)核進(jìn)程提取所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源。
[0183]第一瀏覽器內(nèi)核中會(huì)在向該URL對(duì)應(yīng)的服務(wù)器請(qǐng)求網(wǎng)頁(yè)資源之前,會(huì)在本地的緩存中的資源的查詢,如果有已經(jīng)下載的該URL對(duì)應(yīng)的資源,就不會(huì)再向該服務(wù)器進(jìn)行請(qǐng)求,而是直接使用該已經(jīng)緩存的資源。
[0184]步驟207,采用所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取第二網(wǎng)頁(yè)資源;[0185]其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
[0186]在中止第一內(nèi)核進(jìn)程獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源時(shí),第一內(nèi)核進(jìn)程所獲取的第一網(wǎng)頁(yè)資源可能并不是加載當(dāng)前網(wǎng)頁(yè)所需的全部網(wǎng)頁(yè)資源,對(duì)于加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源,可以向服務(wù)器發(fā)送請(qǐng)求獲取。
[0187]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟207具體可以包括如下子步驟:
[0188]子步驟S71,在所述第二內(nèi)核進(jìn)程中,將用戶代理UserAgent設(shè)置為指示第二瀏覽器內(nèi)核的標(biāo)識(shí);
[0189]子步驟S72,通過(guò)訪問(wèn)當(dāng)前網(wǎng)頁(yè)的URL向服務(wù)器側(cè)請(qǐng)求加載當(dāng)前網(wǎng)頁(yè);所述請(qǐng)求中包括第二網(wǎng)頁(yè)資源的標(biāo)識(shí);所述服務(wù)器用于提取第二網(wǎng)頁(yè)資源;
[0190]子步驟S73,接收所述服務(wù)器側(cè)返回的第二網(wǎng)頁(yè)資源。
[0191]對(duì)于沒(méi)有下載的該URL對(duì)應(yīng)的網(wǎng)頁(yè)資源(即第二網(wǎng)頁(yè)資源),可以生成一個(gè)基于第一瀏覽器內(nèi)核架構(gòu)的請(qǐng)求去請(qǐng)求尚未沒(méi)有下載的網(wǎng)頁(yè)資源。在具體實(shí)現(xiàn)中,對(duì)于已經(jīng)下載的網(wǎng)頁(yè)資源(即第一網(wǎng)頁(yè)資源)和沒(méi)有下載的網(wǎng)頁(yè)資源,可以使用不同的標(biāo)記,將這兩種網(wǎng)頁(yè)資源進(jìn)行標(biāo)記分開。但是該基于第一瀏覽器內(nèi)核架構(gòu)的請(qǐng)求中的用戶代理UserAgent的參數(shù)是需要設(shè)置為指示第二瀏覽器內(nèi)核的標(biāo)識(shí)。
[0192]當(dāng)然,對(duì)于獲取到的第二網(wǎng)頁(yè)資源,也可以存儲(chǔ)在本地的緩存中。
[0193]步驟208,采用所述第一瀏覽器內(nèi)核將所述第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源傳輸?shù)剿龅诙g覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
[0194]第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源可以為加載當(dāng)前網(wǎng)頁(yè)所需的全部資源,當(dāng)?shù)诙g覽器內(nèi)核將獲取到第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源后,可以采用第二瀏覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的渲染。
[0195]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟208具體可以包括如下子步驟:
[0196]子步驟S81,在所述第二內(nèi)核進(jìn)程中采用進(jìn)程間通信IPC分別將所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源傳輸?shù)剿龅谌齼?nèi)核進(jìn)程中;
[0197]子步驟S82,采用所述第三內(nèi)核進(jìn)程采用所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源渲染當(dāng)前網(wǎng)頁(yè)。
[0198]具體實(shí)現(xiàn)中,通過(guò)IPC通信將該已經(jīng)緩存的網(wǎng)頁(yè)資源(第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源)傳輸?shù)降谌齼?nèi)核進(jìn)程,第二瀏覽器內(nèi)核的read函數(shù)獲取該已經(jīng)緩存的網(wǎng)頁(yè)資源,并進(jìn)行后續(xù)的渲染和顯示。
[0199]本發(fā)明中,當(dāng)判定當(dāng)前網(wǎng)頁(yè)適于采用第二瀏覽器內(nèi)核加載時(shí)啟動(dòng)第二瀏覽器內(nèi)核,進(jìn)行瀏覽器內(nèi)核的切換,對(duì)于原瀏覽器內(nèi)核進(jìn)行請(qǐng)求時(shí)獲取的已緩存的網(wǎng)頁(yè)資源的進(jìn)行重復(fù)使用,并請(qǐng)求獲取到未進(jìn)行緩存的網(wǎng)頁(yè)資源,然后通過(guò)IPC將獲取的全部網(wǎng)頁(yè)資源發(fā)送到第二瀏覽器內(nèi)核中進(jìn)行渲染加載,避免了重復(fù)獲取網(wǎng)頁(yè)資源,提高了網(wǎng)頁(yè)的加載速度。
[0200]本發(fā)明中,在網(wǎng)頁(yè)進(jìn)行渲染前進(jìn)行適配瀏覽器內(nèi)核的判斷,通過(guò)使用了資源映射表查找當(dāng)前網(wǎng)頁(yè)URL對(duì)應(yīng)的JavaScript資源,在通過(guò)插件映射表查找該JavaScript資源對(duì)應(yīng)的插件對(duì)象,最后確定適配的瀏覽器內(nèi)核,提高了采用瀏覽器內(nèi)核加載網(wǎng)頁(yè)的適配程度,提高了加載網(wǎng)頁(yè)的效率。[0201]參照?qǐng)D3,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種進(jìn)行網(wǎng)頁(yè)加載的裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:
[0202]第一加載請(qǐng)求接收模塊301,適于在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL ;
[0203]第一網(wǎng)頁(yè)資源獲取模塊302,適于依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源;
[0204]瀏覽器內(nèi)核匹配模塊303,適于依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核;
[0205]第二瀏覽器內(nèi)核啟動(dòng)模塊304,適于在所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核;
[0206]網(wǎng)頁(yè)加載模塊305,適于采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載;
[0207]其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
[0208]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述網(wǎng)頁(yè)加載模塊還適于:
[0209]當(dāng)監(jiān)聽到所述第二瀏覽器內(nèi)核請(qǐng)求加載當(dāng)前網(wǎng)頁(yè)時(shí),采用所述第一瀏覽器內(nèi)核生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求;
[0210]依據(jù)所述第二加載請(qǐng)求采用所述第一瀏覽器內(nèi)核獲取第一網(wǎng)頁(yè)資源;
[0211]采用所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取第二網(wǎng)頁(yè)資源;
[0212]采用所述第一瀏覽器內(nèi)核將所述第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源傳輸?shù)剿龅诙g覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
[0213]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第一瀏覽器內(nèi)核包括第一內(nèi)核進(jìn)程和第二內(nèi)核進(jìn)程,所述第二瀏覽器內(nèi)核包括第三內(nèi)核進(jìn)程。
[0214]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第一加載請(qǐng)求接收模塊還適于:
[0215]在瀏覽器側(cè)通過(guò)所述第一內(nèi)核進(jìn)程接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求。
[0216]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第一網(wǎng)頁(yè)資源獲取模塊還適于:
[0217]采用所述第一內(nèi)核進(jìn)程訪問(wèn)所述URL開始獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源。
[0218]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述瀏覽器內(nèi)核匹配模塊還適于:
[0219]在預(yù)置的資源映射表中查找所述URL對(duì)應(yīng)的JavaScript資源。
[0220]在預(yù)置的插件映射表中查找所述JavaScript資源對(duì)應(yīng)的插件對(duì)象;
[0221]確定所述插件對(duì)象適于運(yùn)行的瀏覽器內(nèi)核為當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核。
[0222]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第二瀏覽器內(nèi)核啟動(dòng)模塊還適于:
[0223]中止所述第一內(nèi)核進(jìn)程獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源;
[0224]啟動(dòng)所述第三內(nèi)核進(jìn)程;
[0225]采用所述第一內(nèi)核進(jìn)程將當(dāng)前網(wǎng)頁(yè)的URL傳輸給所述第三內(nèi)核進(jìn)程。
[0226]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述網(wǎng)頁(yè)加載模塊還適于:
[0227]調(diào)用網(wǎng)絡(luò)編程接口 WinInet啟動(dòng)管理會(huì)話類CInternetSession ;
[0228]當(dāng)在所述管理會(huì)話類CInternetSession中監(jiān)聽到所述第二內(nèi)核進(jìn)程加載網(wǎng)頁(yè)的請(qǐng)求時(shí),提取所述請(qǐng)求中的URL ;
[0229]判斷所述請(qǐng)求中的URL與當(dāng)前網(wǎng)頁(yè)的URL是否相同;若是,則將當(dāng)前網(wǎng)頁(yè)的URL傳輸?shù)剿龅诙?nèi)核進(jìn)程中;
[0230]采用所述第二內(nèi)核進(jìn)程針對(duì)當(dāng)前網(wǎng)頁(yè)的URL生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求。
[0231]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述網(wǎng)頁(yè)加載模塊還適于:
[0232]提取所述第二加載請(qǐng)求中當(dāng)前網(wǎng)頁(yè)的URL ;
[0233]判斷瀏覽器緩存中是否有所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源;若是,則采用所述第二內(nèi)核進(jìn)程提取所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源。
[0234]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述網(wǎng)頁(yè)加載模塊還適于:
[0235]在所述第二內(nèi)核進(jìn)程中,將用戶代理UserAgent設(shè)置為指示第二瀏覽器內(nèi)核的標(biāo)識(shí);
[0236]通過(guò)訪問(wèn)當(dāng)前網(wǎng)頁(yè)的URL向服務(wù)器側(cè)請(qǐng)求加載當(dāng)前網(wǎng)頁(yè);所述請(qǐng)求中包括第二網(wǎng)頁(yè)資源的標(biāo)識(shí);所述服務(wù)器用于提取第二網(wǎng)頁(yè)資源;
[0237]接收所述服務(wù)器側(cè)返回的第二網(wǎng)頁(yè)資源。
[0238]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述網(wǎng)頁(yè)加載模塊還適于:
[0239]在所述第二內(nèi)核進(jìn)程中采用進(jìn)程間通信IPC分別將所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源傳輸?shù)剿龅谌齼?nèi)核進(jìn)程中;
[0240]采用所述第三內(nèi)核進(jìn)程采用所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源渲染當(dāng)前網(wǎng)頁(yè)。
[0241]對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
[0242]本發(fā)明還提供了一種瀏覽器,具體可以包括如下模塊:
[0243]第一加載請(qǐng)求接收模塊,適于在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL ;
[0244]第一網(wǎng)頁(yè)資源獲取模塊,適于依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源;
[0245]瀏覽器內(nèi)核匹配模塊,適于依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核;
[0246]第二瀏覽器內(nèi)核啟動(dòng)模塊,適于在所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核;
[0247]網(wǎng)頁(yè)加載模塊,適于采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載;
[0248]其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
[0249]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述網(wǎng)頁(yè)加載模塊還適于:
[0250]當(dāng)監(jiān)聽到所述第二瀏覽器內(nèi)核請(qǐng)求加載當(dāng)前網(wǎng)頁(yè)時(shí),采用所述第一瀏覽器內(nèi)核生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求;
[0251]依據(jù)所述第二加載請(qǐng)求采用所述第一瀏覽器內(nèi)核獲取第一網(wǎng)頁(yè)資源;
[0252]采用所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取第二網(wǎng)頁(yè)資源;
[0253]采用所述第一瀏覽器內(nèi)核將所述第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源傳輸?shù)剿龅诙g覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
[0254]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第一瀏覽器內(nèi)核包括第一內(nèi)核進(jìn)程和第二內(nèi)核進(jìn)程,所述第二瀏覽器內(nèi)核包括第三內(nèi)核進(jìn)程。
[0255]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第一加載請(qǐng)求接收模塊還適于:
[0256]在瀏覽器側(cè)通過(guò)所述第一內(nèi)核進(jìn)程接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求。
[0257]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第一網(wǎng)頁(yè)資源獲取模塊還適于:
[0258]采用所述第一內(nèi)核進(jìn)程訪問(wèn)所述URL開始獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源。
[0259]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述瀏覽器內(nèi)核匹配模塊還適于:
[0260]在預(yù)置的資源映射表中查找所述URL對(duì)應(yīng)的JavaScript資源。
[0261]在預(yù)置的插件映射表中查找所述JavaScript資源對(duì)應(yīng)的插件對(duì)象;
[0262]確定所述插件對(duì)象適于運(yùn)行的瀏覽器內(nèi)核為當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核。
[0263]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述第二瀏覽器內(nèi)核啟動(dòng)模塊還適于:
[0264]中止所述第一內(nèi)核進(jìn)程獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源;
[0265]啟動(dòng)所述第三內(nèi)核進(jìn)程;
[0266]采用所述第一內(nèi)核進(jìn)程將當(dāng)前網(wǎng)頁(yè)的URL傳輸給所述第三內(nèi)核進(jìn)程。
[0267]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述網(wǎng)頁(yè)加載模塊還適于:
[0268]調(diào)用網(wǎng)絡(luò)編程接口 WinInet啟動(dòng)管理會(huì)話類CInternetSession ;
[0269]當(dāng)在所述管理會(huì)話類CInternetSession中監(jiān)聽到所述第二內(nèi)核進(jìn)程加載網(wǎng)頁(yè)的請(qǐng)求時(shí),提取所述請(qǐng)求中的URL ;
[0270]判斷所述請(qǐng)求中的URL與當(dāng)前網(wǎng)頁(yè)的URL是否相同;若是,則將當(dāng)前網(wǎng)頁(yè)的URL傳輸?shù)剿龅诙?nèi)核進(jìn)程中;
[0271]采用所述第二內(nèi)核進(jìn)程針對(duì)當(dāng)前網(wǎng)頁(yè)的URL生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求。
[0272]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述網(wǎng)頁(yè)加載模塊還適于:
[0273]提取所述第二加載請(qǐng)求中當(dāng)前網(wǎng)頁(yè)的URL ;
[0274]判斷瀏覽器緩存中是否有所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源;若是,則采用所述第二內(nèi)核進(jìn)程提取所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源。
[0275]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述網(wǎng)頁(yè)加載模塊還適于:
[0276]在所述第二內(nèi)核進(jìn)程中,將用戶代理UserAgent設(shè)置為指示第二瀏覽器內(nèi)核的標(biāo)識(shí);
[0277]通過(guò)訪問(wèn)當(dāng)前網(wǎng)頁(yè)的URL向服務(wù)器側(cè)請(qǐng)求加載當(dāng)前網(wǎng)頁(yè);所述請(qǐng)求中包括第二網(wǎng)頁(yè)資源的標(biāo)識(shí);所述服務(wù)器用于提取第二網(wǎng)頁(yè)資源;
[0278]接收所述服務(wù)器側(cè)返回的第二網(wǎng)頁(yè)資源。
[0279]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述網(wǎng)頁(yè)加載模塊還適于:
[0280]在所述第二內(nèi)核進(jìn)程中采用進(jìn)程間通信IPC分別將所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源傳輸?shù)剿龅谌齼?nèi)核進(jìn)程中;
[0281]采用所述第三內(nèi)核進(jìn)程采用所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源渲染當(dāng)前網(wǎng)頁(yè)。
[0282]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0283]在此處所提供的說(shuō)明書中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書的理解。
[0284]類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0285]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中。可以把實(shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
[0286]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
[0287]本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的進(jìn)行網(wǎng)頁(yè)加載的設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
[0288]應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。[0289]本發(fā)明實(shí)施例公開了 Al、一種進(jìn)行網(wǎng)頁(yè)加載的方法,包括:
[0290]在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL;
[0291]依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源;
[0292]依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核;
[0293]當(dāng)所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核;
[0294]采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載;
[0295]其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
[0296]A2、如Al所述的方法,其特征在于,所述采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載的步驟包括:
[0297]當(dāng)監(jiān)聽到所述第二瀏覽器內(nèi)核請(qǐng)求加載當(dāng)前網(wǎng)頁(yè)時(shí),采用所述第一瀏覽器內(nèi)核生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求;
[0298]依據(jù)所述第二加載請(qǐng)求采用所述第一瀏覽器內(nèi)核獲取第一網(wǎng)頁(yè)資源;
[0299]采用所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取第二網(wǎng)頁(yè)資源;
[0300]采用所述第一瀏覽器內(nèi)核將所述第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源傳輸?shù)剿龅诙g覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
[0301]A3、如Al或A2所述的方法,其特征在于,所述第一瀏覽器內(nèi)核包括第一內(nèi)核進(jìn)程和第二內(nèi)核進(jìn)程,所述第二瀏覽器內(nèi)核包括第三內(nèi)核進(jìn)程。
[0302]A4、如A3所述的方法,其特征在于,所述在瀏覽器側(cè)采用所述第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求的步驟包括:
[0303]在瀏覽器側(cè)通過(guò)所述第一內(nèi)核進(jìn)程接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求。
[0304]A5、如A3所述的方法,其特征在于,所述依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源的步驟包括:
[0305]采用所述第一內(nèi)核進(jìn)程訪問(wèn)所述URL開始獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源。
[0306]A6、如Al或A4或A5所述的方法,其特征在于,所述依據(jù)所述當(dāng)前網(wǎng)頁(yè)的URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核的步驟包括:
[0307]在預(yù)置的資源映射表中查找所述URL對(duì)應(yīng)的JavaScript資源。
[0308]在預(yù)置的插件映射表中查找所述JavaScript資源對(duì)應(yīng)的插件對(duì)象;
[0309]確定所述插件對(duì)象適于運(yùn)行的瀏覽器內(nèi)核為當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核。
[0310]A7、如A4或A5所述的方法,其特征在于,所述啟動(dòng)所述第二瀏覽器內(nèi)核的步驟包括:
[0311]中止所述第一內(nèi)核進(jìn)程獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源;
[0312]啟動(dòng)所述第三內(nèi)核進(jìn)程;
[0313]采用所述第一內(nèi)核進(jìn)程將當(dāng)前網(wǎng)頁(yè)的URL傳輸給所述第三內(nèi)核進(jìn)程。
[0314]AS、如A7所述的方法,其特征在于,所述當(dāng)監(jiān)聽到所述第二瀏覽器內(nèi)核請(qǐng)求加載當(dāng)前網(wǎng)頁(yè)時(shí),采用所述第一瀏覽器內(nèi)核生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求的步驟包括:
[0315]調(diào)用網(wǎng)絡(luò)編程接口 WinInet啟動(dòng)管理會(huì)話類CInternetSession ;
[0316]當(dāng)在所述管理會(huì)話類CInternetSession中監(jiān)聽到所述第二內(nèi)核進(jìn)程加載網(wǎng)頁(yè)的請(qǐng)求時(shí),提取所述請(qǐng)求中的URL ;
[0317]判斷所述請(qǐng)求中的URL與當(dāng)前網(wǎng)頁(yè)的URL是否相同;若是,則將當(dāng)前網(wǎng)頁(yè)的URL傳輸?shù)剿龅诙?nèi)核進(jìn)程中;
[0318]采用所述第二內(nèi)核進(jìn)程針對(duì)當(dāng)前網(wǎng)頁(yè)的URL生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求。
[0319]A9、如AS所述的方法,其特征在于,所述依據(jù)所述第二加載請(qǐng)求采用所述第一瀏覽器內(nèi)核獲取第一網(wǎng)頁(yè)資源的步驟包括:
[0320]提取所述第二加載請(qǐng)求中當(dāng)前網(wǎng)頁(yè)的URL ;
[0321]判斷瀏覽器緩存中是否有所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源;若是,則采用所述第二內(nèi)核進(jìn)程提取所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源。
[0322]AlO^n AS所述的方法,其特征在于,所述采用所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取第二網(wǎng)頁(yè)資源的步驟包括:
[0323]在所述第二內(nèi)核進(jìn)程中,將用戶代理UserAgent設(shè)置為指示第二瀏覽器內(nèi)核的標(biāo)識(shí);
[0324]通過(guò)訪問(wèn)當(dāng)前網(wǎng)頁(yè)的URL向服務(wù)器側(cè)請(qǐng)求加載當(dāng)前網(wǎng)頁(yè);所述請(qǐng)求中包括第二網(wǎng)頁(yè)資源的標(biāo)識(shí);所述服務(wù)器用于提取第二`網(wǎng)頁(yè)資源;
[0325]接收所述服務(wù)器側(cè)返回的第二網(wǎng)頁(yè)資源。
[0326]AU、如A3所述的方法,其特征在于,所述采用所述第一瀏覽器內(nèi)核將所述第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源傳輸?shù)剿龅诙g覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載的步驟包括:
[0327]在所述第二內(nèi)核進(jìn)程中采用進(jìn)程間通信IPC分別將所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源傳輸?shù)剿龅谌齼?nèi)核進(jìn)程中;
[0328]采用所述第三內(nèi)核進(jìn)程采用所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源渲染當(dāng)前網(wǎng)頁(yè)。
[0329]本發(fā)明實(shí)施例還公開了 B12、一種進(jìn)行網(wǎng)頁(yè)加載的裝置,包括:
[0330]第一加載請(qǐng)求接收模塊,適于在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL ;
[0331]第一網(wǎng)頁(yè)資源獲取模塊,適于依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源;
[0332]瀏覽器內(nèi)核匹配模塊,適于依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核;
[0333]第二瀏覽器內(nèi)核啟動(dòng)模塊,適于在所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核;
[0334]網(wǎng)頁(yè)加載模塊,適于采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載;
[0335]其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
[0336]B13、如B12所述的裝置,其特征在于,所述網(wǎng)頁(yè)加載模塊還適于:
[0337]當(dāng)監(jiān)聽到所述第二瀏覽器內(nèi)核請(qǐng)求加載當(dāng)前網(wǎng)頁(yè)時(shí),采用所述第一瀏覽器內(nèi)核生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求;
[0338]依據(jù)所述第二加載請(qǐng)求采用所述第一瀏覽器內(nèi)核獲取第一網(wǎng)頁(yè)資源;
[0339]采用所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取第二網(wǎng)頁(yè)資源;
[0340]采用所述第一瀏覽器內(nèi)核將所述第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源傳輸?shù)剿龅诙g覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
[0341]B14、如B12或B13所述的裝置,其特征在于,所述第一瀏覽器內(nèi)核包括第一內(nèi)核進(jìn)程和第二內(nèi)核進(jìn)程,所述第二瀏覽器內(nèi)核包括第三內(nèi)核進(jìn)程。
[0342]B15、如B14所述的裝置,其特征在于,所述第一加載請(qǐng)求接收模塊還適于:
[0343]在瀏覽器側(cè)通過(guò)所述第一內(nèi)核進(jìn)程接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求。
[0344]B16、如B14所述的裝置,其特征在于,所述第一網(wǎng)頁(yè)資源獲取模塊還適于:
[0345]采用所述第一內(nèi)核進(jìn)程訪問(wèn)所述URL開始獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源。
[0346]B17、如B12或B15或B16所述的裝置,其特征在于,所述瀏覽器內(nèi)核匹配模塊還適于:
[0347]在預(yù)置的資源映射表中查找所述URL對(duì)應(yīng)的JavaScript資源。
[0348]在預(yù)置的插件映射表中查找所述JavaScript資源對(duì)應(yīng)的插件對(duì)象;
[0349]確定所述插件對(duì)象適于運(yùn)行的瀏覽器內(nèi)核為當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核。
[0350]B18、如B15或B16所述的裝置,其特征在于,所述第二瀏覽器內(nèi)核啟動(dòng)模塊還適于:
[0351]中止所述第一內(nèi)核進(jìn)程獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源;
[0352]啟動(dòng)所述第三內(nèi)核進(jìn)程;
[0353]采用所述第一內(nèi)核進(jìn)程將當(dāng)前網(wǎng)頁(yè)的URL傳輸給所述第三內(nèi)核進(jìn)程。
[0354]B19、如B18所述的裝置,其特征在于,所述網(wǎng)頁(yè)加載模塊還適于:
[0355]調(diào)用網(wǎng)絡(luò)編程接口 WinInet啟動(dòng)管理會(huì)話類CInternetSession ;
[0356]當(dāng)在所述管理會(huì)話類CInternetSession中監(jiān)聽到所述第二內(nèi)核進(jìn)程加載網(wǎng)頁(yè)的請(qǐng)求時(shí),提取所述請(qǐng)求中的URL ;
[0357]判斷所述請(qǐng)求中的URL與當(dāng)前網(wǎng)頁(yè)的URL是否相同;若是,則將當(dāng)前網(wǎng)頁(yè)的URL傳輸?shù)剿龅诙?nèi)核進(jìn)程中;
[0358]采用所述第二內(nèi)核進(jìn)程針對(duì)當(dāng)前網(wǎng)頁(yè)的URL生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求。
[0359]B20、如B19所述的裝置,其特征在于,所述網(wǎng)頁(yè)加載模塊還適于:
[0360]提取所述第二加載請(qǐng)求中當(dāng)前網(wǎng)頁(yè)的URL;
[0361]判斷瀏覽器緩存中是否有所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源;若是,則采用所述第二內(nèi)核進(jìn)程提取所述URL對(duì)應(yīng)的網(wǎng)頁(yè)資源。
[0362]B21、如B20所述的裝置,其特征在于,所述網(wǎng)頁(yè)加載模塊還適于:
[0363]在所述第二內(nèi)核進(jìn)程中,將用戶代理UserAgent設(shè)置為指示第二瀏覽器內(nèi)核的標(biāo)識(shí);
[0364]通過(guò)訪問(wèn)當(dāng)前網(wǎng)頁(yè)的URL向服務(wù)器側(cè)請(qǐng)求加載當(dāng)前網(wǎng)頁(yè);所述請(qǐng)求中包括第二網(wǎng)頁(yè)資源的標(biāo)識(shí);所述服務(wù)器用于提取第二網(wǎng)頁(yè)資源;
[0365]接收所述服務(wù)器側(cè)返回的第二網(wǎng)頁(yè)資源。
[0366]B22、如B14所述的裝置,其特征在于,所述網(wǎng)頁(yè)加載模塊還適于:[0367]在所述第二內(nèi)核進(jìn)程中采用進(jìn)程間通信IPC分別將所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源傳輸?shù)剿龅谌齼?nèi)核進(jìn)程中;
[0368]采用所述第三內(nèi)核進(jìn)程采用所述第一網(wǎng)頁(yè)資源和所述第二網(wǎng)頁(yè)資源渲染當(dāng)前網(wǎng)頁(yè)。
[0369]本發(fā)明實(shí)施例還公開了 C23、一種瀏覽器,包括B12至B22中任一項(xiàng)所述的進(jìn)行網(wǎng)頁(yè)加載的裝置。
【權(quán)利要求】
1.一種進(jìn)行網(wǎng)頁(yè)加載的方法,包括: 在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL ; 依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源; 依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核; 當(dāng)所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核;采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載; 其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
2.如權(quán)利要求1所述的方法,其特征在于,所述采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載的步驟包括: 當(dāng)監(jiān)聽到所述第二瀏覽器內(nèi)核請(qǐng)求加載當(dāng)前網(wǎng)頁(yè)時(shí),采用所述第一瀏覽器內(nèi)核生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求; 依據(jù)所述第二加載請(qǐng)求采用所述第一瀏覽器內(nèi)核獲取第一網(wǎng)頁(yè)資源; 采用所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取第二網(wǎng)頁(yè)資源; 采用所述第一瀏覽器內(nèi)核將所述第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源傳輸?shù)剿龅诙g覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述第一瀏覽器內(nèi)核包括第一內(nèi)核進(jìn)程和第二內(nèi)核進(jìn)程,所述第二瀏覽器內(nèi)核包括第三內(nèi)核進(jìn)程。
4.如權(quán)利要求3所述的方法,其特征在于,所述在瀏覽器側(cè)采用所述第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求的步驟包括: 在瀏覽器側(cè)通過(guò)所述第一內(nèi)核進(jìn)程接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求。
5.如權(quán)利要求3所述的方法,其特征在于,所述依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源的步驟包括: 采用所述第一內(nèi)核進(jìn)程訪問(wèn)所述URL開始獲取并緩存加載當(dāng)前網(wǎng)頁(yè)所需的資源。
6.一種進(jìn)行網(wǎng)頁(yè)加載的裝置,包括: 第一加載請(qǐng)求接收模塊,適于在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL ; 第一網(wǎng)頁(yè)資源獲取模塊,適于依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源; 瀏覽器內(nèi)核匹配模塊,適于依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核; 第二瀏覽器內(nèi)核啟動(dòng)模塊,適于在所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核; 網(wǎng)頁(yè)加載模塊,適于采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載; 其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
7.如權(quán)利要求6所述的裝置,其特征在于,所述網(wǎng)頁(yè)加載模塊還適于: 當(dāng)監(jiān)聽到所述第二瀏覽器內(nèi)核請(qǐng)求加載當(dāng)前網(wǎng)頁(yè)時(shí),采用所述第一瀏覽器內(nèi)核生成當(dāng)前網(wǎng)頁(yè)的第二加載請(qǐng)求; 依據(jù)所述第二加載請(qǐng)求采用所述第一瀏覽器內(nèi)核獲取第一網(wǎng)頁(yè)資源; 采用所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取第二網(wǎng)頁(yè)資源; 采用所述第一瀏覽器內(nèi)核將所述第一網(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源傳輸?shù)剿龅诙g覽器內(nèi)核進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載。
8.如權(quán)利要求6或7所述的裝置,其特征在于,所述第一瀏覽器內(nèi)核包括第一內(nèi)核進(jìn)程和第二內(nèi)核進(jìn)程,所述第二瀏覽器內(nèi)核包括第三內(nèi)核進(jìn)程。
9.如權(quán)利要求8所述的裝置,其特征在于,所述第一加載請(qǐng)求接收模塊還適于: 在瀏覽器側(cè)通過(guò)所述第一內(nèi)核進(jìn)程接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求。
10.一種瀏覽器,包括: 第一加載請(qǐng)求接收模塊,適 于在瀏覽器側(cè)采用第一瀏覽器內(nèi)核接收當(dāng)前網(wǎng)頁(yè)的第一加載請(qǐng)求;所述第一加載請(qǐng)求中包括當(dāng)前網(wǎng)頁(yè)的URL ; 第一網(wǎng)頁(yè)資源獲取模塊,適于依據(jù)所述第一加載請(qǐng)求開始獲取并緩存第一網(wǎng)頁(yè)資源;所述第一網(wǎng)頁(yè)資源為加載當(dāng)前網(wǎng)頁(yè)所需的網(wǎng)頁(yè)資源; 瀏覽器內(nèi)核匹配模塊,適于依據(jù)所述URL查找當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核; 第二瀏覽器內(nèi)核啟動(dòng)模塊,適于在所述當(dāng)前網(wǎng)頁(yè)匹配的瀏覽器內(nèi)核為第二瀏覽器內(nèi)核時(shí),啟動(dòng)所述第二瀏覽器內(nèi)核; 網(wǎng)頁(yè)加載模塊,適于采用所述第二瀏覽器內(nèi)核基于所述第一瀏覽器內(nèi)核傳輸?shù)牡谝痪W(wǎng)頁(yè)資源和第二網(wǎng)頁(yè)資源,進(jìn)行當(dāng)前網(wǎng)頁(yè)的加載; 其中,所述第二網(wǎng)頁(yè)資源為所述第一瀏覽器內(nèi)核從服務(wù)器側(cè)獲取的,除所述第一網(wǎng)頁(yè)資源外的加載當(dāng)前網(wǎng)頁(yè)所需的剩余網(wǎng)頁(yè)資源。
【文檔編號(hào)】G06F17/30GK103500210SQ201310459986
【公開日】2014年1月8日 申請(qǐng)日期:2013年9月27日 優(yōu)先權(quán)日:2013年9月27日
【發(fā)明者】曹龍, 任寰 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司