国产精品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>

      Ie內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的方法及裝置的制作方法

      文檔序號(hào):6378101閱讀:221來源:國(guó)知局
      專利名稱:Ie內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及瀏覽器技術(shù)領(lǐng)域,具體涉及IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的方法及裝置。
      背景技術(shù)
      瀏覽器是指可以顯示網(wǎng)頁(yè)服務(wù)器或者文件系統(tǒng)的HTML (HypertextMarkupLanguage,超文本標(biāo)記語(yǔ)言)文件內(nèi)容,并讓用戶與這些文件交互的一種軟件。瀏覽器最重要的部分是“Rendering Engine”,一般被稱為“解釋引擎”,或者更多的被稱為“瀏覽器內(nèi)核”。瀏覽器內(nèi)核負(fù)責(zé)對(duì)網(wǎng)頁(yè)語(yǔ)法的解釋(如HTMUJavaScript)并渲染(顯示)網(wǎng)頁(yè)。所以,通常所謂的瀏覽器內(nèi)核也就是瀏覽器所采用的渲染引擎,渲染引擎決定了瀏覽器如何 顯示網(wǎng)頁(yè)的內(nèi)容以及頁(yè)面的格式信息。不同的渲染引擎對(duì)網(wǎng)頁(yè)編寫語(yǔ)法的解釋也有不同,因此同一網(wǎng)頁(yè)在不同的渲染引擎的瀏覽器里的渲染(顯示)效果也可能不同。另一方面,對(duì)于同一渲染引擎而言,隨著渲染引擎版本的升級(jí),其對(duì)網(wǎng)頁(yè)編寫語(yǔ)法的解釋一般也會(huì)發(fā)生變化,這就使得按照舊版本編寫的網(wǎng)頁(yè),在使用新版本的渲染引擎進(jìn)行渲染時(shí),可能會(huì)使得網(wǎng)頁(yè)的顯示效果受到影響。為了盡可能兼容按照不同渲染引擎、同一渲染引擎的不同版本編寫的網(wǎng)頁(yè),同一個(gè)瀏覽器中一般會(huì)提供多種渲染模式,也即,一個(gè)瀏覽器中內(nèi)置有多個(gè)內(nèi)核,或者同一內(nèi)核的多個(gè)版本。以IE瀏覽器為例,在發(fā)布IE8瀏覽器時(shí),內(nèi)核版本已經(jīng)升級(jí)到IE8,但是,為了能夠兼容按照IE6、IE7標(biāo)準(zhǔn)編寫的網(wǎng)頁(yè),IE8瀏覽器中內(nèi)置有IE6、IE7、IE8這三個(gè)版本的內(nèi)核,在使用IE8瀏覽器瀏覽某網(wǎng)頁(yè)時(shí),如果該網(wǎng)頁(yè)在使用IE7渲染能夠正常顯示,使用IE8渲染時(shí)卻出現(xiàn)變形,則可以使用IE7對(duì)該網(wǎng)頁(yè)進(jìn)行渲染,以保證網(wǎng)頁(yè)的顯示效果。為了配合這種在多個(gè)版本的IE內(nèi)核之間進(jìn)行轉(zhuǎn)換的機(jī)制,IE內(nèi)核瀏覽器一般需要具有內(nèi)置轉(zhuǎn)換引擎,以及一個(gè)專門的配置文件(例如,iecompatdata. xml),該配置文件中保存了網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系,當(dāng)用戶訪問某網(wǎng)頁(yè)時(shí),瀏覽器的轉(zhuǎn)換引擎會(huì)首先發(fā)起一個(gè)選擇IE內(nèi)核版本的請(qǐng)求,從該配置文件中查找當(dāng)前網(wǎng)頁(yè)的網(wǎng)址,并查找到該網(wǎng)址對(duì)應(yīng)的IE內(nèi)核版本,然后使用對(duì)應(yīng)的IE內(nèi)核版本對(duì)該網(wǎng)頁(yè)進(jìn)行渲染。然而,在現(xiàn)有技術(shù)中,雖然IE內(nèi)核瀏覽器已經(jīng)使用了前述多個(gè)IE內(nèi)核版本之間進(jìn)行切換的機(jī)制,但是,現(xiàn)有的配置文件中保存的網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系往往是不夠的,使得網(wǎng)頁(yè)的渲染效率及效果受到影響。

      發(fā)明內(nèi)容
      鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的方法和相應(yīng)的IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的裝置。依據(jù)本發(fā)明的一個(gè)方面,提供了一種IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的方法,所述IE內(nèi)核瀏覽器中內(nèi)置有至少兩個(gè)版本的IE內(nèi)核,所述IE內(nèi)核瀏覽器中包括第一映射表,所述第一映射表中保存有網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系;所述方法包括預(yù)置第二映射表,所述第二映射表中保存有特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系;接收到網(wǎng)頁(yè)訪問請(qǐng)求之后,對(duì)選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行監(jiān)控;當(dāng)監(jiān)控到所述選擇IE內(nèi)核版本的請(qǐng)求時(shí),對(duì)所述選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行攔截,以阻止查詢所述第一映射表的操作;確定所述選擇IE內(nèi)核版本的請(qǐng)求對(duì)應(yīng)的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,并從所述第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本;利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染??蛇x地,還包括 如果所述第二映射表中不存在所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,則從所述第一映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本??蛇x地,還包括如果所述第一映射表中不存在所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,則將預(yù)置的默認(rèn)IE內(nèi)核版本確定為目標(biāo)IE內(nèi)核版本??蛇x地,還包括記錄所述目標(biāo)網(wǎng)頁(yè)與目標(biāo)IE內(nèi)核版本之間的對(duì)應(yīng)關(guān)系;當(dāng)攔截到新的選擇IE內(nèi)核版本的請(qǐng)求時(shí),確定新的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址;判斷新的目標(biāo)網(wǎng)頁(yè)是否為原目標(biāo)網(wǎng)頁(yè)的子網(wǎng)頁(yè),如果是,則將所記錄的原目標(biāo)網(wǎng)頁(yè)對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本,確定為新的目標(biāo)網(wǎng)頁(yè)的目標(biāo)IE內(nèi)核版本??蛇x地,所述第二映射表保存有根據(jù)特定地理區(qū)域用戶的瀏覽習(xí)慣建立的特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系??蛇x地,所述第二映射表為多個(gè),分別對(duì)應(yīng)不同的特定地理區(qū)域,所述從所述第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本包括根據(jù)IE內(nèi)核瀏覽器終端側(cè)所在用戶設(shè)備的IP地址確定發(fā)送方所處的地理區(qū)域;從所述發(fā)送方所處地理區(qū)域?qū)?yīng)的第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本??蛇x地,還包括根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新??蛇x地,所述第二映射表保存有根據(jù)特定地理區(qū)域用戶的瀏覽習(xí)慣建立的特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系,且所述第二映射表為多個(gè),分別對(duì)應(yīng)不同的特定地理區(qū)域,則所述根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新包括根據(jù)瀏覽器終端側(cè)所在用戶設(shè)備的IP地址確定地理區(qū)域;根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的該地理區(qū)域?qū)?yīng)的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新??蛇x地,所述對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新包括安裝所述IE內(nèi)核瀏覽器的新版本時(shí),對(duì)所述第二映射表進(jìn)行更新;
      或者,通過后臺(tái)方式對(duì)所述第二映射表進(jìn)行更新;或者,所述IE內(nèi)核瀏覽器被啟動(dòng)時(shí),對(duì)所述第二映射表進(jìn)行更新??蛇x地,所述利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染包括通過將所述目標(biāo)IE內(nèi)核版本設(shè)置到GetUrlCacheEntryInfo函數(shù)的中的IpCacheEntryInfo 參數(shù)以及 CoInternetSetBrowserEmulationMode 函數(shù)中,實(shí)現(xiàn)利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。根據(jù)本發(fā)明的另一方面,提供了一種IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的裝置,所述IE 內(nèi)核瀏覽器中內(nèi)置有至少兩個(gè)版本的IE內(nèi)核,所述IE內(nèi)核瀏覽器中包括第一映射表,所述第一映射表中保存有網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系;所述裝置包括映射表預(yù)置單元,用于預(yù)置第二映射表,所述第二映射表中保存有特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系;監(jiān)控單元,用于接收到網(wǎng)頁(yè)訪問請(qǐng)求之后,對(duì)選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行監(jiān)控;攔截單元,用于當(dāng)監(jiān)控到所述選擇IE內(nèi)核版本的請(qǐng)求時(shí),對(duì)所述選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行攔截,以阻止查詢所述第一映射表的操作;第一查詢單元,用于獲取所述選擇IE內(nèi)核版本的請(qǐng)求對(duì)應(yīng)的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,并從所述第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本;渲染單元,用于利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。可選地,還包括第二查詢單元,用于如果所述第二映射表中不存在所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,則從所述第一映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本??蛇x地,還包括默認(rèn)選擇單元,用于如果所述第一映射表中不存在所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,則將預(yù)置的默認(rèn)IE內(nèi)核版本確定為目標(biāo)IE內(nèi)核版本??蛇x地,還包括記錄單元,用于記錄所述目標(biāo)網(wǎng)頁(yè)與目標(biāo)IE內(nèi)核版本之間的對(duì)應(yīng)關(guān)系;標(biāo)識(shí)確定單元,用于當(dāng)攔截到新的選擇IE內(nèi)核版本的請(qǐng)求時(shí),確定新的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址;判斷單元,用于判斷新的目標(biāo)網(wǎng)頁(yè)是否為原目標(biāo)網(wǎng)頁(yè)的子網(wǎng)頁(yè),如果是,則將所記錄的原目標(biāo)網(wǎng)頁(yè)對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本,確定為新的目標(biāo)網(wǎng)頁(yè)的目標(biāo)IE內(nèi)核版本。可選地,所述第二映射表保存有根據(jù)特定地理區(qū)域用戶的瀏覽習(xí)慣建立的特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系??蛇x地,所述第二映射表為多個(gè),分別對(duì)應(yīng)不同的特定地理區(qū)域,所述第一查詢單元包括地理區(qū)域確定子單元,用于根據(jù)IE內(nèi)核瀏覽器終端側(cè)所在用戶設(shè)備的IP地址確定發(fā)送方所處的地理區(qū)域;查詢子單元,用于從所述發(fā)送方所處地理區(qū)域?qū)?yīng)的第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本。
      可選地,還包括更新單元,用于根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新??蛇x地,所述第二映射表保存有根據(jù)特定地理區(qū)域用戶的瀏覽習(xí)慣建立的特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系,且所述第二映射表為多個(gè),分別對(duì)應(yīng)不同的特定地理區(qū)域,所述更新單元包括區(qū)域確定子單元,用于根據(jù)瀏覽器終端側(cè)所在用戶設(shè)備的IP地址確定地理區(qū)域;區(qū)域數(shù)據(jù)更新子單元,用于根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的該地理區(qū)域?qū)?yīng)的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新??蛇x地,所述更新單元包括
      第一更新子單元,用于安裝所述IE內(nèi)核瀏覽器的新版本時(shí),對(duì)所述第二映射表進(jìn)行更新;或者,第二更新子單元,用于通過后臺(tái)方式對(duì)所述第二映射表進(jìn)行更新;或者,第三更新子單元,用于所述IE內(nèi)核瀏覽器被啟動(dòng)時(shí),對(duì)所述第二映射表進(jìn)行更新??蛇x地,所述渲染單元具體用于通過將所述目標(biāo)IE內(nèi)核版本設(shè)置到GetUrlCacheEntryInfo函數(shù)的中的IpCacheEntryInfo 參數(shù)以及通過 CoInternetSetBrowserEmulationMode 函數(shù),實(shí)現(xiàn)利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。根據(jù)本發(fā)明的IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的方法及裝置,可以預(yù)置不同于原有第一映射表的第二映射表,在監(jiān)控到選擇IE內(nèi)核版本的請(qǐng)求時(shí),對(duì)該請(qǐng)求進(jìn)行攔截,阻止轉(zhuǎn)換引擎到第一映射表中查詢,而是從第二映射表中查詢出當(dāng)前網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核,并用該IE內(nèi)核對(duì)目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。通過這種方式,實(shí)現(xiàn)了對(duì)第一映射表的擴(kuò)展,通過第二映射表可以避免完全依賴于原有的第一映射表,并且可以引入非第一映射表為主導(dǎo)的IE內(nèi)核版本匹配流程,從而提高了基于IE內(nèi)核的瀏覽器的渲染效率。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
      。


      通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中圖I示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的方法的流程圖;以及圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的裝置的示意圖。
      具體實(shí)施方式
      下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。首先需要說明的是,本發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),現(xiàn)有技術(shù)中之所以在即時(shí)使用了多個(gè)IE內(nèi)核版本切換機(jī)制的情況下,仍然經(jīng)常出現(xiàn)某些網(wǎng)頁(yè)的顯示結(jié)果不夠理想的狀況,是因?yàn)?,現(xiàn)有的IE內(nèi)核的開發(fā)者在制作網(wǎng)址-渲染引擎映射表時(shí),一般假設(shè)用戶分布在全世界,因此,其網(wǎng)址-IE內(nèi)核版本映射表更強(qiáng)調(diào)通用性,而不會(huì)專門針對(duì)特定地理區(qū)域范圍內(nèi)(例如某個(gè)國(guó)家或地區(qū)等)的用戶的瀏覽習(xí)慣進(jìn)行特殊的處理。而其他瀏覽器開發(fā)商開發(fā)的瀏覽器一般也是使用IE內(nèi)核,對(duì)于使用IE內(nèi)核的瀏覽器而言,內(nèi)置的轉(zhuǎn)換引擎會(huì)默認(rèn)使用微軟公司提供的網(wǎng)址-IE內(nèi)核版本映射表,該映射表就是基于全球范圍建立的,并不會(huì)考慮到具體國(guó)家或地區(qū)用戶的瀏覽習(xí)慣。然而,有些瀏覽器的用戶群則一般僅限于某個(gè)或某幾個(gè)國(guó)家或地區(qū)等特定地理區(qū)域,根據(jù)瀏覽器用戶分布區(qū)域的不同,某特定瀏覽器的用戶在訪問網(wǎng)站時(shí),瀏覽習(xí)慣等也往·往會(huì)體現(xiàn)出區(qū)域性的差異。在這樣的情況下,如果能夠基于特定國(guó)家或地區(qū)的用戶瀏覽習(xí)慣建立起網(wǎng)址-IE內(nèi)核版本映射表,則可以使得該網(wǎng)址-IE內(nèi)核版本映射表更具有地域特色,并且也可以使得該特定國(guó)家或地區(qū)內(nèi)的網(wǎng)站被收錄得更全面,更加符合該國(guó)家或地區(qū)的用戶的瀏覽習(xí)慣。因此,在本發(fā)明實(shí)施例中,就可以預(yù)置另一張網(wǎng)址-IE內(nèi)核版本映射表,該網(wǎng)址-IE內(nèi)核版本映射表可以是基于特定地理區(qū)域范圍內(nèi)(例如特定國(guó)家或地區(qū)等)的用戶瀏覽器習(xí)慣建立起來的,收錄的該特定地理區(qū)域范圍內(nèi)的網(wǎng)站也更全面,當(dāng)然實(shí)際收錄的網(wǎng)站也不限于該地理區(qū)域范圍內(nèi)。該網(wǎng)址-IE內(nèi)核版本映射表可以是由工作人員通過對(duì)網(wǎng)站進(jìn)行收集,并對(duì)各自適用的最佳IE內(nèi)核版本的判斷手動(dòng)建立的;并且,還可以根據(jù)用戶在瀏覽過程中的反饋,對(duì)該網(wǎng)址-IE內(nèi)核版本映射表進(jìn)行調(diào)整更新。但是,在瀏覽器內(nèi)置了多個(gè)IE內(nèi)核版本的情況下,常規(guī)的網(wǎng)頁(yè)渲染過程一般是這樣的在用戶發(fā)起訪問某網(wǎng)頁(yè)的請(qǐng)求時(shí),瀏覽器能夠獲取到用戶請(qǐng)求網(wǎng)頁(yè)的URL (Uniform/Universal Resource Locator,統(tǒng)一資源定位符),該URL可以是地址欄中輸入的URL,或者點(diǎn)擊新的鏈接而使得地址欄中顯示網(wǎng)址發(fā)生變化時(shí),依據(jù)該URL發(fā)起網(wǎng)頁(yè)資源下載請(qǐng)求時(shí)所使用的URL。同時(shí),瀏覽器可以將網(wǎng)頁(yè)資源下載請(qǐng)求發(fā)送到網(wǎng)頁(yè)服務(wù)器,網(wǎng)頁(yè)服務(wù)器便可以返回相應(yīng)的網(wǎng)頁(yè)資源,例如HTML, CSS(Cascading Style Sheet,級(jí)聯(lián)樣式表),JS(JavaScript)等資源后,然后就可以在渲染中對(duì)網(wǎng)頁(yè)資源進(jìn)行渲染。由于內(nèi)置了多個(gè)IE內(nèi)核版本,因此,轉(zhuǎn)換引擎還需要發(fā)起對(duì)使用哪個(gè)IE內(nèi)核版本進(jìn)行渲染的判斷,以選擇最合適的IE內(nèi)核版本后進(jìn)行渲染。該轉(zhuǎn)換引擎會(huì)自動(dòng)到一個(gè)默認(rèn)的網(wǎng)址-IE內(nèi)核版本映射表(也即由微軟公司提供的網(wǎng)址-IE內(nèi)核版本映射表)中進(jìn)行查詢。也就是說,僅僅提供一個(gè)不同于默認(rèn)網(wǎng)址-IE內(nèi)核版本映射表的另一個(gè)網(wǎng)址-IE內(nèi)核版本映射表是不夠的,如何打破該常規(guī)的流程,使得轉(zhuǎn)換引擎能夠讀取該另一個(gè)網(wǎng)址-IE內(nèi)核版本映射表,并從該網(wǎng)址-IE內(nèi)核版本映射表中獲取相關(guān)的/[目息,是最終實(shí)現(xiàn)如述目的的關(guān)鍵。為此,本發(fā)明實(shí)施例提供了一種IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染方法,前提是該IE內(nèi)核瀏覽器中內(nèi)置有至少兩個(gè)版本的IE內(nèi)核,并且,該IE內(nèi)核瀏覽器中包括第一映射表,該第一映射表一般是基于全世界范圍建立的,并沒有考慮特定國(guó)家或地區(qū)等用戶的瀏覽習(xí)慣問題,其中保存有網(wǎng)頁(yè)標(biāo)識(shí)與IE內(nèi)核版本之間的映射關(guān)系;參見圖1,該方法可以包括SlOl :預(yù)置第二映射表,所述第二映射表中保存有特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系;如前文所述,在本發(fā)明實(shí)施例中,需要預(yù)置不同于微軟提供的網(wǎng)址-IE內(nèi)核版本映射表的另一張網(wǎng)址-IE內(nèi)核版本映射表,在實(shí)際應(yīng)用中,該網(wǎng)址-IE內(nèi)核版本映射表可以是基于某特定的地理區(qū)域范圍內(nèi)用戶的瀏覽習(xí)慣建立的。對(duì)于第二映射表中的網(wǎng)址和內(nèi)核之間的映射關(guān)系的獲取,多是瀏覽器運(yùn)營(yíng)商的服務(wù)器側(cè)接收用戶的反饋上報(bào)的網(wǎng)址后,將網(wǎng)址與各個(gè)IE內(nèi)核版本進(jìn)行逐一匹配測(cè)試,選擇出渲染效果最好的一個(gè),將對(duì)應(yīng)關(guān)系保存到第二映射表中;和/或,也可以服務(wù)器側(cè)的人員對(duì)于指定地域用戶訪問的網(wǎng)站網(wǎng)址進(jìn)行 收集,并分別將各個(gè)網(wǎng)站的網(wǎng)址與各個(gè)IE內(nèi)核版本進(jìn)行逐一匹配測(cè)試,最終選擇出渲染效果最好的IE內(nèi)核版本,并將對(duì)應(yīng)關(guān)系保存到第二映射表中。然后再將第二映射表部署到瀏覽器的客戶端側(cè)。S102 :接收到網(wǎng)頁(yè)訪問請(qǐng)求之后,對(duì)選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行監(jiān)控;S102 :當(dāng)監(jiān)控到所述選擇IE內(nèi)核版本的請(qǐng)求時(shí),對(duì)所述請(qǐng)求選擇IE內(nèi)核版本的進(jìn)行攔截,以阻止查詢所述第一映射表的操作;選擇IE內(nèi)核版本的請(qǐng)求可以是有轉(zhuǎn)換引擎發(fā)起的,目的就是到網(wǎng)址-IE內(nèi)核版本映射表中查詢當(dāng)前網(wǎng)址對(duì)應(yīng)的IE內(nèi)核版本。該請(qǐng)求一般是通過調(diào)用以下函數(shù)進(jìn)行的GetUrlCacheEntryInfo(LPCTSTR IpszUrlName, LPINTERNET_CACHE_ENTRY_INFOIpCacheEntryInfo, LPDffORD IpdwCacheEntryInfoBufferSize);因此,可以通過鉤子對(duì)該函數(shù)進(jìn)行Η00Κ,這樣,當(dāng)發(fā)現(xiàn)轉(zhuǎn)換引擎通過調(diào)用該函數(shù)發(fā)出選擇IE內(nèi)核版本的請(qǐng)求之后,就可以對(duì)該請(qǐng)求進(jìn)行攔截,阻止該請(qǐng)求向默認(rèn)的網(wǎng)址-IE內(nèi)核版本映射表的發(fā)送。S103 :確定所述請(qǐng)求對(duì)應(yīng)的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,并從所述第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本;選擇IE內(nèi)核版本的請(qǐng)求是為了給某一個(gè)目標(biāo)網(wǎng)頁(yè)選擇合適的IE內(nèi)核版本,因此,攔截到該請(qǐng)求之后,可以首先確定出目標(biāo)網(wǎng)頁(yè)的標(biāo)識(shí)信息,具體實(shí)現(xiàn)時(shí),該標(biāo)識(shí)信息可以是目標(biāo)網(wǎng)頁(yè)的URL等信息。具體可以在用戶在瀏覽器地址欄中輸入U(xiǎn)RL之后就獲取到,或者在用戶點(diǎn)擊新的鏈接而使得地址欄中顯示的URL發(fā)生變化時(shí),根據(jù)地址欄中的新URL獲取至IJ?;蛘撸x擇IE內(nèi)核版本的請(qǐng)求中也會(huì)攜帶目標(biāo)網(wǎng)頁(yè)的URL,因此,也可以從該請(qǐng)求中提取。在獲取到目標(biāo)網(wǎng)頁(yè)的網(wǎng)址之后,就可以從預(yù)置的第二映射表中查找該目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,并取出該網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本。該預(yù)置的第二映射表就可以是前述不同于默認(rèn)網(wǎng)址-IE內(nèi)核版本映射表的另一網(wǎng)址-IE內(nèi)核版本映射表。在該網(wǎng)址-IE內(nèi)核版本映射表中,也保存有網(wǎng)址與IE內(nèi)核版本之間的對(duì)應(yīng)關(guān)系,如前文所述,與默認(rèn)的網(wǎng)址-IE內(nèi)核版本映射表不同的是,該網(wǎng)址-IE內(nèi)核版本映射表中可以根據(jù)實(shí)際的需求靈活地設(shè)置其中具體包含哪些網(wǎng)址,以及各個(gè)網(wǎng)址對(duì)應(yīng)IE內(nèi)核版本。當(dāng)然,在實(shí)際應(yīng)用中,也可能出現(xiàn)第二網(wǎng)址-IE內(nèi)核版本映射表中不存在某目標(biāo)網(wǎng)頁(yè)的網(wǎng)址的情況,還可以到第一網(wǎng)址-IE內(nèi)核版本映射表中進(jìn)行查詢。該第一網(wǎng)址-IE內(nèi)核版本映射表就可以是指默認(rèn)的網(wǎng)址-IE內(nèi)核版本映射表,例如由微軟等在全球范圍內(nèi)建立起來的網(wǎng)址-IE內(nèi)核版本映射表。如果在第一網(wǎng)址-IE內(nèi)核版本映射表中仍然無法查找到當(dāng)前網(wǎng)頁(yè),則可以使用默認(rèn)的IE內(nèi)核版本對(duì)當(dāng)前目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。另外,在實(shí)際應(yīng)用中,有些網(wǎng)頁(yè)之間可能存在父子關(guān)系,例如,假設(shè)網(wǎng)頁(yè)B是網(wǎng)頁(yè)A的子網(wǎng)頁(yè),則網(wǎng)頁(yè)A與網(wǎng)頁(yè)B的制作者可能是相同的,并且可能是同時(shí)制作的,因此,網(wǎng)頁(yè)A與網(wǎng)頁(yè)B對(duì)應(yīng)的最佳IE內(nèi)核版本可能是相同的。因此,在本發(fā)明實(shí)施例中,在針對(duì)某目標(biāo)網(wǎng)頁(yè)A選擇出最佳IE內(nèi)核版本之后,可以記錄下此次選擇的結(jié)果;如果發(fā)現(xiàn)用戶在該目標(biāo)網(wǎng)頁(yè)A中點(diǎn)擊其子網(wǎng)頁(yè)B進(jìn)行訪問,則在攔截到針對(duì)該子網(wǎng)頁(yè)B的IE內(nèi)核版本選擇請(qǐng)求之后,就可以直接將網(wǎng)頁(yè)A對(duì)應(yīng)的IE內(nèi)核版本返回,而不必再進(jìn)行網(wǎng)址-IE內(nèi)核版本映射表的查詢操作。這樣,一方面可以提高響應(yīng)效率,另一方面,當(dāng)一個(gè)父網(wǎng)頁(yè)包含多個(gè)子網(wǎng)頁(yè)的情況下,就可以僅在網(wǎng)址-IE內(nèi)核版本映射表中保存該父網(wǎng)頁(yè)與IE內(nèi)核版本之間的對(duì)應(yīng)關(guān)系,各個(gè)子網(wǎng)頁(yè)則不需要再進(jìn)行保存,因此,可以避免網(wǎng)址-IE內(nèi)核版本映射表由于收錄的網(wǎng)址過多而顯得過于臃腫。
      S104 :利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。在為目標(biāo)網(wǎng)頁(yè)選定了某目標(biāo)IE內(nèi)核版本之后,就可以利用該目標(biāo)IE內(nèi)核版本對(duì)目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。具體實(shí)現(xiàn)時(shí),可以使用GetUrlCacheEntryInfo函數(shù)的中的LPINTERNET_CACHE_ENTRY_INFOff IpCacheEntryInfo參數(shù)進(jìn)行設(shè)置,來設(shè)置該選中的目標(biāo)IE 內(nèi)核版本。其中,IpCacheEntryInfo —個(gè)指向 LPINTERNET_CACHE_ENTRY_INFO 的結(jié)構(gòu)體指針,該結(jié)構(gòu)體包含網(wǎng)頁(yè)緩存的信息,可以通過為該結(jié)構(gòu)體中的各個(gè)成員進(jìn)行賦值的方式,以進(jìn)行目標(biāo)IE內(nèi)核版本的設(shè)定。進(jìn)一步地還需要使用HRESULT WINAPICoInternetSetBrowserEmulationMode) (DWORD dwCurMode)函數(shù)來設(shè)置上述的選中的IE內(nèi)核版本,這樣就可以確保所選中的IE內(nèi)核版本可以用來進(jìn)行目標(biāo)網(wǎng)頁(yè)的渲染。另外,在實(shí)際應(yīng)用中,如果同一個(gè)IE內(nèi)核瀏覽器的用戶分布在多個(gè)地理區(qū)域,則也可以在IE內(nèi)核瀏覽器中設(shè)置多個(gè)第二映射表,分別對(duì)應(yīng)不同的特定地理區(qū)域,例如,中國(guó)的IP地址段對(duì)應(yīng)著第二映射表I ;香港的IP地址段對(duì)應(yīng)著第二映射表2 ;臺(tái)灣的IP地址段對(duì)應(yīng)著第二映射表3,等等。這樣,可以根據(jù)瀏覽器終端用戶的地域不同,適配不同的第二映射表,以便服務(wù)不同地域的用戶。具體實(shí)現(xiàn)時(shí),在接收到某IE瀏覽器客戶端的網(wǎng)頁(yè)訪問請(qǐng)求之后,可以首先根據(jù)IE瀏覽器客戶端所在終端設(shè)備的IP地址等信息(該信息會(huì)在網(wǎng)頁(yè)訪問請(qǐng)求中攜帶,因此可以從中獲取)確定出用戶所處的地理區(qū)域,然后根據(jù)該用戶所在的地理區(qū)域?qū)?yīng)的第二映射表,來查詢當(dāng)前請(qǐng)求訪問的網(wǎng)頁(yè)標(biāo)識(shí)信息對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本。在實(shí)際應(yīng)用中,本發(fā)明實(shí)施例所述的第二映射表的靈活性還體現(xiàn)在,它可以根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新,例如增加信息的映射條目,或者變更原有的映射條目等等。其中,關(guān)于IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,其來源同樣可以是開發(fā)或者維護(hù)人員等收集的,或者也可以是用戶上報(bào)的。需要說明的是,在第二映射表保存有根據(jù)特定地理區(qū)域用戶的瀏覽習(xí)慣建立的特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系,且所述第二映射表為多個(gè),分別對(duì)應(yīng)不同的特定地理區(qū)域的情況下,對(duì)客戶端的第二映射表進(jìn)行更新時(shí),可以首先根據(jù)瀏覽器終端側(cè)所在用戶設(shè)備的IP地址確定地理區(qū)域,然后根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的該地理區(qū)域?qū)?yīng)的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新。具體在對(duì)第二映射表進(jìn)行更新時(shí),可以有種不同的時(shí)機(jī)。例如,可以在安裝新版本的IE內(nèi)核瀏覽器時(shí),從該瀏覽器的服務(wù)器獲取更新信息,對(duì)第二映射表進(jìn)行更新?;蛘?,也可以在用戶啟動(dòng)瀏覽器時(shí),向服務(wù)器發(fā)出獲取更新信息的請(qǐng)求,根據(jù)服務(wù)器返回的信息對(duì)第二映射表進(jìn)行更新。再或者,也可以通過后臺(tái)的方式獲取服務(wù)器上的更新信息,并對(duì)第二映射表進(jìn)行更新。其中,在所謂的后臺(tái)方式中,可以是由客戶端定期或者不定期地后臺(tái)訪問服務(wù)器,以獲取更新信息,或者也可以是由服務(wù)器采用廣播等方式向各個(gè)客戶端推送更新
      自坐坐I I=I尼、,寸寸O總之,在本發(fā)明實(shí)施例中,可以預(yù)置不同于原有第一映射表的第二映射表,在監(jiān)控到選擇IE內(nèi)核版本的請(qǐng)求時(shí),對(duì)該請(qǐng)求進(jìn)行攔截,阻止轉(zhuǎn)換引擎到第一映射表中查詢,而是從第二映射表中查詢出當(dāng)前網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核,并用該IE內(nèi)核對(duì)目標(biāo)網(wǎng)頁(yè)進(jìn)行渲 染。通過這種方式,實(shí)現(xiàn)了對(duì)第一映射表的擴(kuò)展,通過第二映射表可以避免完全依賴于原有的第一映射表,并且可以引入非第一映射表為主導(dǎo)的IE內(nèi)核版本匹配流程,從而提高了基于IE內(nèi)核的瀏覽器的渲染效率。與本發(fā)明實(shí)施例提供的IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的裝置,其中,所述IE內(nèi)核瀏覽器中內(nèi)置有至少兩個(gè)版本的IE內(nèi)核,所述IE內(nèi)核瀏覽器中包括第一映射表,所述第一映射表中保存有網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系;參見圖2,所述裝置具體可以包括映射表預(yù)置單元201,用于預(yù)置第二映射表,所述第二映射表中保存有特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系;監(jiān)控單元202,用于接收到網(wǎng)頁(yè)訪問請(qǐng)求之后,對(duì)選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行監(jiān)控;攔截單元203,用于當(dāng)監(jiān)控到所述選擇IE內(nèi)核版本的請(qǐng)求時(shí),對(duì)所述選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行攔截,以阻止查詢所述第一映射表的操作;第一查詢單元204,用于獲取所述選擇IE內(nèi)核版本的請(qǐng)求對(duì)應(yīng)的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,并從所述第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本;渲染單元205,用于利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。具體實(shí)現(xiàn)時(shí),該裝置還可以包括第二查詢單元,用于如果所述第二映射表中不存在所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,則從所述第一映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本。另外,該裝置還可以包括默認(rèn)選擇單元,用于如果所述第一映射表中不存在所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,則將預(yù)置的默認(rèn)IE內(nèi)核版本確定為目標(biāo)IE內(nèi)核版本。為了提高效率,防止網(wǎng)址-IP內(nèi)核版本映射表的規(guī)模過于龐大,該裝置還可以包括記錄單元,用于記錄所述目標(biāo)網(wǎng)頁(yè)與目標(biāo)IE內(nèi)核版本之間的對(duì)應(yīng)關(guān)系;標(biāo)識(shí)確定單元,用于當(dāng)攔截到新的選擇IE內(nèi)核版本的請(qǐng)求時(shí),確定新的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址;
      判斷單元,用于判斷新的目標(biāo)網(wǎng)頁(yè)是否為原目標(biāo)網(wǎng)頁(yè)的子網(wǎng)頁(yè),如果是,則將所記錄的原目標(biāo)網(wǎng)頁(yè)對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本,確定為新的目標(biāo)網(wǎng)頁(yè)的目標(biāo)IE內(nèi)核版本。在實(shí)際應(yīng)用中,所述第二映射表可以保存有根據(jù)特定地理區(qū)域用戶的瀏覽習(xí)慣建立的特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系。其中,所述第二映射表為多個(gè),分別對(duì)應(yīng)不同的特定地理區(qū)域,所述第一查詢單元204可以包括地理區(qū)域確定子單元,用于根據(jù)IE內(nèi)核瀏覽器終端側(cè)所在用戶設(shè)備的IP地址確定發(fā)送方所處的地理區(qū)域;查詢子單元,用于從所述發(fā)送方所處地理區(qū)域?qū)?yīng)的第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本。該裝置還可以包括 更新單元,用于根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新。其中,如果所述第二映射表保存有根據(jù)特定地理區(qū)域用戶的瀏覽習(xí)慣建立的特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系,且所述第二映射表為多個(gè),分別對(duì)應(yīng)不同的特定地理區(qū)域,則所述更新單元具體可以包括區(qū)域確定子單元,用于根據(jù)瀏覽器終端側(cè)所在用戶設(shè)備的IP地址確定地理區(qū)域;區(qū)域數(shù)據(jù)更新子單元,用于根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的該地理區(qū)域?qū)?yīng)的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新。其中,所述更新單元包括第一更新子單元,用于安裝所述IE內(nèi)核瀏覽器的新版本時(shí),對(duì)所述第二映射表進(jìn)行更新;或者,第二更新子單元,用于通過后臺(tái)方式對(duì)所述第二映射表進(jìn)行更新;或者,第三更新子單元,用于所述IE內(nèi)核瀏覽器被啟動(dòng)時(shí),對(duì)所述第二映射表進(jìn)行更新。在具體實(shí)現(xiàn)時(shí),所述渲染單元205具體可以用于通過將所述目標(biāo)IE內(nèi)核版本設(shè)置到GetUrlCacheEntryInfo函數(shù)的中的IpCacheEntryInfo 參數(shù)以及 CoInternetSetBrowserEmulationMode 函數(shù)中,實(shí)現(xiàn)利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染??傊?,在本發(fā)明實(shí)施例提供的上述裝置中,可以預(yù)置不同于原有第一映射表的第二映射表,在監(jiān)控到選擇IE內(nèi)核版本的請(qǐng)求時(shí),對(duì)該請(qǐng)求進(jìn)行攔截,阻止轉(zhuǎn)換引擎到第一映射表中查詢,而是從第二映射表中查詢出當(dāng)前網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核,并用該IE內(nèi)核對(duì)目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。通過這種方式,實(shí)現(xiàn)了對(duì)第一映射表的擴(kuò)展,通過第二映射表可以避免完全依賴于原有的第一映射表,并且可以引入非第一映射表為主導(dǎo)的IE內(nèi)核版本匹配流程,從而提高了基于IE內(nèi)核的瀏覽器的渲染效率。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。類似地,應(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)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
      的權(quán)利要求書由此明確地并入該具體實(shí)施方式
      ,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
      本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。本發(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)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的IE內(nèi)核瀏覽器進(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)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(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ī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。本申請(qǐng)可以應(yīng)用于計(jì)算機(jī)系統(tǒng)/服務(wù)器,其可與眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置一起操作。適于與計(jì)算機(jī)系統(tǒng)/服務(wù)器一起使用的眾所周知的計(jì)算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于個(gè)人計(jì)算機(jī)系統(tǒng)、服務(wù)器計(jì)算機(jī)系統(tǒng)、瘦客戶機(jī)、厚客戶機(jī)、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)個(gè)人電腦、小型計(jì)算機(jī)系統(tǒng)、大型計(jì)算機(jī)系統(tǒng)和包括上述任何系統(tǒng)的分布 式云計(jì)算技術(shù)環(huán)境,等等。計(jì)算機(jī)系統(tǒng)/服務(wù)器可以在由計(jì)算機(jī)系統(tǒng)執(zhí)行的計(jì)算機(jī)系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語(yǔ)境下描述。通常,程序模塊可以包括例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或者實(shí)現(xiàn)特定的抽象數(shù)據(jù)類型。計(jì)算機(jī)系統(tǒng)/服務(wù)器可以在分布式云計(jì)算環(huán)境中實(shí)施,分布式云計(jì)算環(huán)境中,任務(wù)是由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的。在分布式云計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備的本地或遠(yuǎn)程計(jì)算系統(tǒng)存儲(chǔ)介質(zhì)上。
      權(quán)利要求
      1.一種IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的方法,所述IE內(nèi)核瀏覽器中內(nèi)置有至少兩個(gè)版本的IE內(nèi)核,所述IE內(nèi)核瀏覽器中包括第一映射表,所述第一映射表中保存有網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系;所述方法包括 預(yù)置第二映射表,所述第二映射表中保存有特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系; 接收到網(wǎng)頁(yè)訪問請(qǐng)求之后,對(duì)選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行監(jiān)控; 當(dāng)監(jiān)控到所述選擇IE內(nèi)核版本的請(qǐng)求時(shí),對(duì)所述選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行攔截,以阻止查詢所述第一映射表的操作; 確定所述選擇IE內(nèi)核版本的請(qǐng)求對(duì)應(yīng)的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,并從所述第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本; 利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。
      2.如權(quán)利要求I所述的方法,還包括 如果所述第二映射表中不存在所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,則從所述第一映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本。
      3.如權(quán)利要求2所述的方法,還包括 如果所述第一映射表中不存在所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,則將預(yù)置的默認(rèn)IE內(nèi)核版本確定為目標(biāo)IE內(nèi)核版本。
      4.如權(quán)利要求I至3任一項(xiàng)所述的方法,還包括 記錄所述目標(biāo)網(wǎng)頁(yè)與目標(biāo)IE內(nèi)核版本之間的對(duì)應(yīng)關(guān)系; 當(dāng)攔截到新的選擇IE內(nèi)核版本的請(qǐng)求時(shí),確定新的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址; 判斷新的目標(biāo)網(wǎng)頁(yè)是否為原目標(biāo)網(wǎng)頁(yè)的子網(wǎng)頁(yè),如果是,則將所記錄的原目標(biāo)網(wǎng)頁(yè)對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本,確定為新的目標(biāo)網(wǎng)頁(yè)的目標(biāo)IE內(nèi)核版本。
      5.如權(quán)利要求I至3任一項(xiàng)所述的方法,所述第二映射表保存有根據(jù)特定地理區(qū)域用戶的瀏覽習(xí)慣建立的特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系。
      6.如權(quán)利要求5任一項(xiàng)所述的方法,所述第二映射表為多個(gè),分別對(duì)應(yīng)不同的特定地理區(qū)域,所述從所述第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本包括 根據(jù)IE內(nèi)核瀏覽器終端側(cè)所在用戶設(shè)備的IP地址確定發(fā)送方所處的地理區(qū)域;從所述發(fā)送方所處地理區(qū)域?qū)?yīng)的第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本。
      7.如權(quán)利要求I所述的方法,還包括 根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新。
      8.根據(jù)權(quán)利要求7所述的方法,所述第二映射表保存有根據(jù)特定地理區(qū)域用戶的瀏覽習(xí)慣建立的特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系,且所述第二映射表為多個(gè),分別對(duì)應(yīng)不同的特定地理區(qū)域,則所述根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新包括 根據(jù)瀏覽器終端側(cè)所在用戶設(shè)備的IP地址確定地理區(qū)域; 根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的該地理區(qū)域?qū)?yīng)的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新。
      9.如權(quán)利要求7或8所述的方法,所述對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新包括 安裝所述IE內(nèi)核瀏覽器的新版本時(shí),對(duì)所述第二映射表進(jìn)行更新; 或者, 通過后臺(tái)方式對(duì)所述第二映射表進(jìn)行更新; 或者, 所述IE內(nèi)核瀏覽器被啟動(dòng)時(shí),對(duì)所述第二映射表進(jìn)行更新。
      10.如權(quán)利要求I至3任一項(xiàng)所述的方法,所述利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染包括 通過將所述目標(biāo)IE內(nèi)核版本設(shè)置到GetUrlCacheEntryInfo函數(shù)的中的IpCacheEntryInfo 參數(shù)以及 CoInternetSetBrowserEmulationMode 函數(shù)中,實(shí)現(xiàn)利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。
      11.一種IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的裝置,所述IE內(nèi)核瀏覽器中內(nèi)置有至少兩個(gè)版本的IE內(nèi)核,所述IE內(nèi)核瀏覽器中包括第一映射表,所述第一映射表中保存有網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系;所述裝置包括 映射表預(yù)置單元,用于預(yù)置第二映射表,所述第二映射表中保存有特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系; 監(jiān)控單元,用于接收到網(wǎng)頁(yè)訪問請(qǐng)求之后,對(duì)選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行監(jiān)控; 攔截單元,用于當(dāng)監(jiān)控到所述選擇IE內(nèi)核版本的請(qǐng)求時(shí),對(duì)所述選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行攔截,以阻止查詢所述第一映射表的操作; 第一查詢單元,用于獲取所述選擇IE內(nèi)核版本的請(qǐng)求對(duì)應(yīng)的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,并從所述第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本; 渲染單元,用于利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。
      12.如權(quán)利要求11所述的裝置,還包括 第二查詢單元,用于如果所述第二映射表中不存在所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,則從所述第一映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本。
      13.如權(quán)利要求12所述的裝置,還包括 默認(rèn)選擇單元,用于如果所述第一映射表中不存在所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,則將預(yù)置的默認(rèn)IE內(nèi)核版本確定為目標(biāo)IE內(nèi)核版本。
      14.如權(quán)利要求11至13任一項(xiàng)所述的裝置,還包括 記錄單元,用于記錄所述目標(biāo)網(wǎng)頁(yè)與目標(biāo)IE內(nèi)核版本之間的對(duì)應(yīng)關(guān)系; 標(biāo)識(shí)確定單元,用于當(dāng)攔截到新的選擇IE內(nèi)核版本的請(qǐng)求時(shí),確定新的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址; 判斷單元,用于判斷新的目標(biāo)網(wǎng)頁(yè)是否為原目標(biāo)網(wǎng)頁(yè)的子網(wǎng)頁(yè),如果是,則將所記錄的原目標(biāo)網(wǎng)頁(yè)對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本,確定為新的目標(biāo)網(wǎng)頁(yè)的目標(biāo)IE內(nèi)核版本。
      15.如權(quán)利要求11至13任一項(xiàng)所述的裝置,所述第二映射表保存有根據(jù)特定地理區(qū)域用戶的瀏覽習(xí)慣建立的特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系。
      16.如權(quán)利要求15所述的裝置,所述第二映射表為多個(gè),分別對(duì)應(yīng)不同的特定地理區(qū)域,所述第一查詢單元包括 地理區(qū)域確定子單元,用于根據(jù)IE內(nèi)核瀏覽器終端側(cè)所在用戶設(shè)備的IP地址確定發(fā)送方所處的地理區(qū)域; 查詢子單元,用于從所述發(fā)送方所處地理區(qū)域?qū)?yīng)的第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本。
      17.如權(quán)利要求11所述的裝置,還包括 更新單元,用于根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新。
      18.如權(quán)利要求17所述的裝置,所述第二映射表保存有根據(jù)特定地理區(qū)域用戶的瀏覽習(xí)慣建立的特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系,且所述第二映射表為多個(gè),分別對(duì)應(yīng)不同的特定地理區(qū)域,所述更新單元包括 區(qū)域確定子單元,用于根據(jù)瀏覽器終端側(cè)所在用戶設(shè)備的IP地址確定地理區(qū)域;區(qū)域數(shù)據(jù)更新子單元,用于根據(jù)IE內(nèi)核瀏覽器服務(wù)器側(cè)提供的該地理區(qū)域?qū)?yīng)的特定網(wǎng)址與IE內(nèi)核版本的映射關(guān)系,對(duì)IE內(nèi)核瀏覽器終端側(cè)的第二映射表進(jìn)行更新。
      19.如權(quán)利要求17或18所述的裝置,所述更新單元包括 第一更新子單元,用于安裝所述IE內(nèi)核瀏覽器的新版本時(shí),對(duì)所述第二映射表進(jìn)行更新; 或者, 第二更新子單元,用于通過后臺(tái)方式對(duì)所述第二映射表進(jìn)行更新; 或者, 第三更新子單元,用于所述IE內(nèi)核瀏覽器被啟動(dòng)時(shí),對(duì)所述第二映射表進(jìn)行更新。
      20.如權(quán)利要求11至13任一項(xiàng)所述的裝置,所述渲染單元具體用于 通過將所述目標(biāo)IE內(nèi)核版本設(shè)置到GetUrlCacheEntryInfo函數(shù)的中的IpCacheEntryInfo 參數(shù)以及通過 CoInternetSetBrowserEmulationMode 函數(shù),實(shí)現(xiàn)利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。
      全文摘要
      本發(fā)明公開了IE內(nèi)核瀏覽器進(jìn)行網(wǎng)頁(yè)渲染的方法及裝置,所述IE內(nèi)核瀏覽器中內(nèi)置有至少兩個(gè)版本的IE內(nèi)核,包括第一映射表,其保存有網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系;所述方法包括預(yù)置第二映射表,所述第二映射表中保存有特定網(wǎng)址與IE內(nèi)核版本之間的映射關(guān)系;接收到網(wǎng)頁(yè)訪問請(qǐng)求之后,對(duì)選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行監(jiān)控;對(duì)所述選擇IE內(nèi)核版本的請(qǐng)求進(jìn)行攔截,以阻止查詢所述第一映射表的操作;確定所述選擇IE內(nèi)核版本的請(qǐng)求對(duì)應(yīng)的目標(biāo)網(wǎng)頁(yè)的網(wǎng)址,并從所述第二映射表中查找所述目標(biāo)網(wǎng)頁(yè)的網(wǎng)址對(duì)應(yīng)的目標(biāo)IE內(nèi)核版本;利用所述目標(biāo)IE內(nèi)核版本對(duì)所述目標(biāo)網(wǎng)頁(yè)進(jìn)行渲染。通過本發(fā)明,提高了基于IE內(nèi)核的瀏覽器的渲染效率。
      文檔編號(hào)G06F17/30GK102929944SQ20121037202
      公開日2013年2月13日 申請(qǐng)日期2012年9月28日 優(yōu)先權(quán)日2012年9月28日
      發(fā)明者黨壯, 任寰 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1