欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種ie內(nèi)核瀏覽器的頁面下載控制方法和系統(tǒng)的制作方法

文檔序號:6434215閱讀:234來源:國知局
專利名稱:一種ie內(nèi)核瀏覽器的頁面下載控制方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本申請涉及瀏覽器的技術(shù)領(lǐng)域,特別是涉及一種IE內(nèi)核瀏覽器的頁面下載控制方法和一種IE內(nèi)核瀏覽器的頁面下載控制系統(tǒng)。
背景技術(shù)
瀏覽器最重要的部分是“Rendering Engine”,可大概譯為“解釋引擎”,一般習(xí)慣將之稱為“瀏覽器內(nèi)核”。瀏覽器內(nèi)核負(fù)責(zé)對網(wǎng)頁語法的解釋(如HTML、JavaScript)并渲染(顯示)網(wǎng)頁。所以,通常所謂的瀏覽器內(nèi)核也就是對頁面進(jìn)行下載、解析、執(zhí)行、渲染的引擎,該引擎決定了瀏覽器如何顯示網(wǎng)頁的內(nèi)容以及頁面的格式信息。目前市場上流行的瀏覽器,按實(shí)現(xiàn)方式大體可以分為兩種第一種,瀏覽器的開發(fā)者既進(jìn)行瀏覽器內(nèi)核的開發(fā),也進(jìn)行瀏覽器產(chǎn)品的開發(fā)。 如chrome瀏覽器、firefox瀏覽器、Safari瀏覽器、InternetExplore瀏覽器等。第二種,瀏覽器的開發(fā)者,僅進(jìn)行瀏覽器產(chǎn)品的開發(fā),使用其他瀏覽器廠商實(shí)現(xiàn)的內(nèi)核。將內(nèi)核嵌入到自己瀏覽器內(nèi)來使用。如360安全瀏覽器、遨游瀏覽器、世界之窗瀏覽器、搜狗瀏覽器等。這種瀏覽器通常采用hternet Explorer瀏覽器內(nèi)核,通常被稱之為 "IE內(nèi)核瀏覽器”。目前市場上所有的IE內(nèi)核瀏覽器,僅是直接使用系統(tǒng)提供的WebBrowser組件實(shí)現(xiàn)。具體的使用方法是,首先用OleCreate API (應(yīng)用程序接口)創(chuàng)建WebBrowser組件,獲取組件創(chuàng)建的窗口,將其嵌入到瀏覽器的窗口內(nèi)。然后調(diào)用該WebBrowser組件提供的接口,讓它訪問網(wǎng)址。在整個訪問過程中,由WebBrowser組件自己的代碼來進(jìn)行網(wǎng)頁的下載、 解析、執(zhí)行、渲染。外殼程序僅需接收組件返回的通知,變更相應(yīng)界面內(nèi)容。IE內(nèi)核為了讓開發(fā)者使用起來非常簡單,所以暴露的接口非常有限,一般只提供訪問網(wǎng)頁、停止、刷新、后退等基本接口,僅能對頁面進(jìn)行簡單的控制,如訪問某網(wǎng)址、刷新、 停止、后退等。對于很多內(nèi)部情況,瀏覽器開發(fā)者毫不知情、無法控制。尤其是無法控制頁面下載過程,從而影響頁面下載的效率和穩(wěn)定性??傊?,需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是如何能夠有效控制IE 內(nèi)核瀏覽器的頁面下載過程,以提高頁面下載的效率和穩(wěn)定性。

發(fā)明內(nèi)容
本申請所要解決的技術(shù)問題是提供一種IE內(nèi)核瀏覽器的頁面下載控制方法,用以有效控制IE內(nèi)核瀏覽器的頁面下載過程,提高頁面下載的效率和穩(wěn)定性。相應(yīng)地,本申請還提供了一種IE內(nèi)核瀏覽器的頁面下載控制系統(tǒng),用以保證上述方法在實(shí)際中的應(yīng)用。本申請?zhí)峁┝艘环NIE內(nèi)核瀏覽器的頁面下載控制方法,包括啟動IE內(nèi)核瀏覽器進(jìn)程,并啟動預(yù)置的下載進(jìn)程;在所述IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議,等待基于相應(yīng)通信協(xié)議的頁面下載請求;當(dāng)所述IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請求時(shí),將所述頁面下載請求發(fā)送給下載進(jìn)程;下載進(jìn)程獲取所述頁面下載請求對應(yīng)的文件大小信息;當(dāng)所述文件大小信息超過預(yù)設(shè)的文件大小閾值時(shí),采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作;下載進(jìn)程在所述頁面下載操作過程中向IE內(nèi)核瀏覽器進(jìn)程返回下載狀態(tài)信息。優(yōu)選的是,所述的方法,還包括當(dāng)所述文件大小信息未超過預(yù)設(shè)的文件大小閾值時(shí),采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。優(yōu)選的是、所述的方法,其特征在于,還包括所述IE內(nèi)核瀏覽器進(jìn)程依據(jù)所述下載狀態(tài)信息,對下載的頁面數(shù)據(jù)進(jìn)行解析、執(zhí)行、和/或渲染的操作。優(yōu)選的是,所述在IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議的步驟為,使用 IInternetSession接口的RegisterNameSpace方法,在IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議,所述通信協(xié)議包括http協(xié)議、https協(xié)議、mailto協(xié)議和FTP協(xié)議。優(yōu)選的是,在下載進(jìn)程獲取所述頁面下載請求對應(yīng)的文件大小信息的步驟之前, 還包括下載進(jìn)程將所述頁面下載請求添加至預(yù)先生成的下載任務(wù)列表中;獲取所述頁面下載請求對應(yīng)的頁面資源類型,在所述下載任務(wù)列表中,按照所述頁面資源類型對頁面下載請求進(jìn)行排序;依次處理所述下載任務(wù)列表中的頁面下載請求。優(yōu)選的是,所述頁面下載請求中包括URL信息,所述URL信息中包括擴(kuò)展名信息, 所述頁面下載請求對應(yīng)的頁面資源類型通過讀取所述擴(kuò)展名信息獲取。優(yōu)選的是,在下載進(jìn)程獲取所述頁面下載請求對應(yīng)的文件大小信息的步驟之前, 還包括下載進(jìn)程根據(jù)所述頁面下載請求判斷所請求的文件是否已被預(yù)先寫入緩存中,若是,則從緩存中提取該文件;若否,則開始執(zhí)行獲取所述頁面下載請求對應(yīng)的文件大小信息的步驟。優(yōu)選的是,所述的方法還包括將下載的文件寫入緩存。優(yōu)選的是,所述的方法還包括在從緩存中提取文件進(jìn)行下載的步驟之前,查詢該文件寫入緩存的時(shí)間是否超過預(yù)設(shè)期限,若是,則開始執(zhí)行獲取所述頁面下載請求對應(yīng)的文件大小信息的步驟;否則,執(zhí)行從緩存中提取文件的步驟。本申請還提供了一種IE內(nèi)核瀏覽器的頁面下載控制系統(tǒng),包括啟動模塊,用于啟動IE內(nèi)核瀏覽器進(jìn)程,并啟動預(yù)置的下載進(jìn)程;協(xié)議注冊模塊,用于在所述IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議,等待基于相應(yīng)通信協(xié)議的頁面下載請求;
請求傳送模塊,用于在IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請求時(shí),將所述頁面下載請求發(fā)送給下載進(jìn)程;文件大小獲取模塊,用于由下載進(jìn)程獲取所述頁面下載請求對應(yīng)的文件大小信息;多線程下載模塊,用于在所述文件大小信息超過預(yù)設(shè)的文件大小閾值時(shí),采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作;狀態(tài)匯報(bào)模塊,用于在所述頁面下載操作過程中向IE內(nèi)核瀏覽器進(jìn)程返回下載狀態(tài)信息。優(yōu)選的是,所述的系統(tǒng)還包括單線程下載模塊,用于在所述文件大小信息未超過預(yù)設(shè)的文件大小閾值時(shí),采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。優(yōu)選的是,所述的系統(tǒng)還包括內(nèi)核操作模塊,用于由所述IE內(nèi)核瀏覽器進(jìn)程依據(jù)所述下載狀態(tài)信息,對下載的頁面數(shù)據(jù)進(jìn)行解析、執(zhí)行、和/或渲染的操作。優(yōu)選的是,所述的系統(tǒng)還包括任務(wù)添加模塊,用于由下載進(jìn)程將所述頁面下載請求添加至預(yù)先生成的下載任務(wù)列表中;排序模塊,用于獲取所述頁面下載請求對應(yīng)的頁面資源類型,在所述下載任務(wù)列表中,按照所述頁面資源類型對頁面下載請求進(jìn)行排序;下載執(zhí)行模塊,用于依次處理所述下載任務(wù)列表中的頁面下載請求,調(diào)用所述文件大小獲取模塊。優(yōu)選的是,所述頁面下載請求中包括URL信息,所述URL信息中包括擴(kuò)展名信息, 所述頁面下載請求對應(yīng)的頁面資源類型通過讀取所述擴(kuò)展名信息獲取。優(yōu)選的是,所述的系統(tǒng)還包括緩存判斷模塊,用于由下載進(jìn)程根據(jù)所述頁面下載請求判斷所請求的文件是否已被預(yù)先寫入緩存中,若是,則觸發(fā)緩存提取模塊;若否,則觸發(fā)文件大小獲取模塊;緩存提取模塊,用于從緩存中提取該文件。優(yōu)選的是,所述的系統(tǒng)還包括緩存寫入模塊,用于將下載的文件寫入緩存。優(yōu)選的是,所述的系統(tǒng)還包括緩存超期判斷模塊,用于查詢該文件寫入緩存的時(shí)間是否超過預(yù)設(shè)期限,若是,則調(diào)用文件大小獲取模塊,若否,則調(diào)用所述緩存提取模塊。與現(xiàn)有技術(shù)相比,本申請具有以下優(yōu)點(diǎn)本申請使用IE的協(xié)議管理擴(kuò)展接口,來將IE內(nèi)核瀏覽器的全部下載都自己接管, 從而使嵌入IE內(nèi)核瀏覽器的外殼程序,能夠自行控制瀏覽器內(nèi)核的下載,并將下載后的數(shù)據(jù)送回IE內(nèi)核,讓其繼續(xù)執(zhí)行解析、執(zhí)行、渲染的工作。由于下載行為不發(fā)生在瀏覽器進(jìn)程,當(dāng)下載遇到問題程序崩潰時(shí),瀏覽器進(jìn)程不會隨之崩潰。可以重新啟動一個下載進(jìn)程繼續(xù)下載。因而,本申請可以有效控制IE內(nèi)核瀏覽器的頁面下載過程,以提高頁面下載的效率和穩(wěn)定性。
再者,本申請通過采用多線程下載、資源排序和緩存讀寫的下載優(yōu)化方案,能提升下載速度和頁面展現(xiàn)速度,充分發(fā)揮用戶的帶寬,提高資源利用率。


圖1是本申請的一種IE內(nèi)核瀏覽器的頁面下載控制方法實(shí)施例1的步驟流程圖;圖2是本申請的一種IE內(nèi)核瀏覽器的頁面下載控制方法實(shí)施例2的步驟流程圖;圖3是本申請的一種IE內(nèi)核瀏覽器的頁面下載控制方法實(shí)施例3的步驟流程圖;圖4是本申請的一種IE內(nèi)核瀏覽器的頁面下載控制系統(tǒng)實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施例方式為使本申請的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對本申請作進(jìn)一步詳細(xì)的說明。本申請的核心構(gòu)思在于,使嵌入IE內(nèi)核瀏覽器的外殼程序,能夠自行控制瀏覽器內(nèi)核的下載,并將下載后的數(shù)據(jù)送回IE內(nèi)核,讓其繼續(xù)執(zhí)行解析、執(zhí)行、渲染的工作。參考圖1,示出了本申請的一種IE內(nèi)核瀏覽器的頁面下載控制方法實(shí)施例1的步驟流程圖,具體可以包括以下步驟步驟101、啟動IE內(nèi)核瀏覽器進(jìn)程,并啟動預(yù)置的下載進(jìn)程;在本申請實(shí)施例中,所述IE內(nèi)核瀏覽器進(jìn)程是指采用IEdnternet Explorer)瀏覽器內(nèi)核的瀏覽器進(jìn)程。現(xiàn)有技術(shù)中,瀏覽器內(nèi)核負(fù)責(zé)對頁面進(jìn)行下載、解析、執(zhí)行、渲染, 而在本實(shí)施例中,IE瀏覽器內(nèi)核僅用于完成解析、執(zhí)行、渲染的操作,下載的操作由預(yù)置的下載進(jìn)程完成。公知的是,進(jìn)程是一個正在執(zhí)行的程序,即計(jì)算機(jī)中正在運(yùn)行的程序?qū)嵗?;其可以分配給處理器并作為一個實(shí)體由處理器執(zhí)行。從用戶角度來看,瀏覽器進(jìn)程可以理解為在任務(wù)管理器內(nèi)所啟動的瀏覽器代表的進(jìn)程,所述下載進(jìn)程可以理解為IE內(nèi)核瀏覽器的另外一個進(jìn)程,是一個專門用于下載操作的進(jìn)程。即所述下載進(jìn)程專門用于下載,而不做其他操作。作為本申請實(shí)施例具體實(shí)現(xiàn)的一種示例,所述下載進(jìn)程內(nèi)部可以使用WinHTTP (WinHTTP的全稱是Microsoft Windows HTTP Services,它提供給開發(fā)者一個HTTP客戶端應(yīng)用程序接口(API),通過這種API借助 HTTP協(xié)議給其他的HTTP服務(wù)器發(fā)送請求.)實(shí)現(xiàn)一個下載器,和一個下載管理器。即所述下載進(jìn)程中包括一個下載管理器和一些下載器。所述下載管理器用于按照預(yù)設(shè)的下載規(guī)則控制頁面下載,例如對下載資源的請求進(jìn)行排序、優(yōu)化等;下載器則用于實(shí)現(xiàn)具體的下載操作,并通過下載管理器向IE內(nèi)核瀏覽器進(jìn)程報(bào)告下載情況,即下載狀態(tài)信息。在實(shí)際中,這個下載進(jìn)程就像一個服務(wù),啟動后隨時(shí)等待被調(diào)用。在本申請實(shí)施例中,所述IE內(nèi)核瀏覽器進(jìn)程啟動時(shí),所述下載進(jìn)程也會啟動,以保證頁面在瀏覽器中的正常展現(xiàn)。步驟102、在所述IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議,等待基于相應(yīng)通信協(xié)議的頁面下載請求;在具體實(shí)現(xiàn)中,所述在IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議的步驟可以為,使用 IInternetSession接口的RegisterNameSpace方法,在IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議,所述通信協(xié)議可以包括http協(xié)議、https協(xié)議、mailto協(xié)議和FTP協(xié)議。胃IInternetSession ^Π ^ RegisterNameSpace ^gT^yMSI^ 格式的接口,使用這個方法在IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議之后,則所有采用相應(yīng)通信協(xié)議的頁面下載請求,都會傳送到預(yù)設(shè)的外殼程序接口,即當(dāng)發(fā)生任何采用相應(yīng)通信協(xié)議(如http、https協(xié)議)的頁面下載請求時(shí),IE內(nèi)核會通知或調(diào)用預(yù)設(shè)的外殼程序接口。步驟103、當(dāng)所述IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請求時(shí),將所述頁面下載請求發(fā)送給下載進(jìn)程;步驟104、下載進(jìn)程獲取所述頁面下載請求對應(yīng)的文件大小信息;步驟105、當(dāng)所述文件大小信息超過預(yù)設(shè)的文件大小閾值時(shí),采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作;步驟106、下載進(jìn)程在所述頁面下載操作過程中向IE內(nèi)核瀏覽器進(jìn)程返回下載狀
態(tài)fe息。在本申請的一種優(yōu)選實(shí)施例中,還可以包括如下步驟當(dāng)所述文件大小信息未超過預(yù)設(shè)的文件大小閾值時(shí),采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。在具體實(shí)現(xiàn)中,當(dāng)IE內(nèi)核調(diào)用在通信協(xié)議注冊過程中提供的nnternetfrotocol 接口的Mart方法時(shí),通過跨進(jìn)程通信,將頁面下載請求發(fā)送到下載進(jìn)程,并返回操作符E_ PENDING,通知IE內(nèi)核操作正在執(zhí)行中。當(dāng)下載到數(shù)據(jù)后,下載進(jìn)程會通知到發(fā)起下載的IE 內(nèi)核瀏覽器進(jìn)程,IE內(nèi)核瀏覽器進(jìn)程調(diào)用IE內(nèi)核提供的nnternetfrotocolSink接口的相關(guān)方法,通知IE內(nèi)核下載進(jìn)度、下載到的數(shù)據(jù)等下載狀態(tài)信息。更具體而言,跨進(jìn)程通信,是指將一個進(jìn)程的請求轉(zhuǎn)到另一個進(jìn)程,在本實(shí)施例中即指將IE內(nèi)核瀏覽器進(jìn)程的頁面下載請求轉(zhuǎn)到下載進(jìn)程,并在下載過程中,實(shí)時(shí)向IE內(nèi)核報(bào)告下載進(jìn)度和下載數(shù)據(jù)等下載狀態(tài)信息??邕M(jìn)程通信可以使用windows消息機(jī)制,并配合內(nèi)核對象進(jìn)行數(shù)據(jù)傳輸。例如,在IE瀏覽器進(jìn)程中注冊了 http協(xié)議后,一旦有基于http 協(xié)議的頁面下載請求就會送到預(yù)設(shè)的瀏覽器外殼程序中。當(dāng)IE內(nèi)核調(diào)用所述外殼程序的時(shí)候,會將這個頁面下載請求的相關(guān)信息都傳遞過來,外殼程序會將這些信息打包(放到一個數(shù)據(jù)塊中,數(shù)據(jù)塊中主要包括url、refresh、cookie等),然后通過Windows系統(tǒng)提供的標(biāo)準(zhǔn)管道通信,將此數(shù)據(jù)塊發(fā)送到下載進(jìn)程。下載過程中向?yàn)g覽器進(jìn)程發(fā)送的Windows 消息,主要是告訴瀏覽器當(dāng)前下載的進(jìn)度。簡而言之,跨進(jìn)程通信是雙方的,首先,IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請求后, 會通過跨進(jìn)程通信,告訴下載進(jìn)程那些文件需要下載。另一方面,當(dāng)下載請求執(zhí)行過程中, 下載進(jìn)程會向IE內(nèi)核瀏覽器進(jìn)程發(fā)送消息,通知其下載進(jìn)度、下載數(shù)據(jù)等下載狀態(tài)信息。本申請實(shí)施例主要涉及通過針對超過預(yù)設(shè)閾值的大文件進(jìn)行多線程下載的下載優(yōu)化方案,是在下載進(jìn)程控制下載的過程中實(shí)現(xiàn)的,也就是說,當(dāng)瀏覽器進(jìn)程接收到IE下載請求時(shí),觸發(fā)下載進(jìn)程執(zhí)行下載,在由下載器正式下載的時(shí)候,下載管理器會判斷當(dāng)前文件大小是否超過預(yù)設(shè)閾值,若是,則控制下載器采用多線程下載的方式對當(dāng)前頁面下載請求對應(yīng)的文件進(jìn)行下載。線程可以理解為下載的通道,單線程下載就是針對一個文件開啟一個下載通道, 多線程下載就是針對一個文件同時(shí)開啟多個下載通道,具體而言,多線程下載其實(shí)就是同時(shí)向服務(wù)器請求單一文件的不同部分。在具體實(shí)現(xiàn)中,僅需向服務(wù)器通信一次,如發(fā)送一個標(biāo)準(zhǔn)的http請求,即可獲取到文件大小,以及,是否支持多線程下載等信息。通過諸如flash,圖片等多媒體類型的文件會比較大,針對實(shí)際需求,可以設(shè)置文件大小閾值,比如1M,當(dāng)超過1M,則啟動多線程下載。在具體實(shí)現(xiàn)中,本申請實(shí)施例還可以包括如下步驟步驟107、所述IE內(nèi)核瀏覽器進(jìn)程依據(jù)所述下載狀態(tài)信息,對下載的頁面數(shù)據(jù)進(jìn)行解析、執(zhí)行、和/或渲染的操作。當(dāng)下載進(jìn)程完成下載操作后,將下載后的數(shù)據(jù)送回IE內(nèi)核,由IE內(nèi)核繼續(xù)執(zhí)行解析、執(zhí)行、渲染的工作。參考圖2,示出了本申請的一種IE內(nèi)核瀏覽器的頁面下載控制方法實(shí)施例2的步驟流程圖,具體可以包括如下步驟步驟201、啟動IE內(nèi)核瀏覽器進(jìn)程,并啟動預(yù)置的下載進(jìn)程;步驟202、在所述IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議,等待基于相應(yīng)通信協(xié)議的頁面下載請求;步驟203、當(dāng)所述IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請求時(shí),將所述頁面下載請求發(fā)送給下載進(jìn)程;步驟204、下載進(jìn)程將所述頁面下載請求添加至預(yù)先生成的下載任務(wù)列表中;步驟205、獲取所述頁面下載請求對應(yīng)的頁面資源類型,在所述下載任務(wù)列表中, 按照所述頁面資源類型對頁面下載請求進(jìn)行排序;在實(shí)際中,所述頁面下載請求中包括URL信息,所述URL信息中包括擴(kuò)展名信息, 在這種情況下,所述頁面下載請求對應(yīng)的頁面資源類型可以通過讀取所述擴(kuò)展名信息獲取。步驟206、依次處理所述下載任務(wù)列表中的頁面下載請求;步驟207、獲取所述頁面下載請求對應(yīng)的文件大小信息;步驟208、判斷所述文件大小信息是否超過預(yù)設(shè)的文件大小閾值,若是,則執(zhí)行步驟209 ;否則,執(zhí)行步驟210 ;步驟209、采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作;轉(zhuǎn)步驟211 ;步驟210、采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作;轉(zhuǎn)步驟211 ;步驟211、在所述頁面下載操作過程中向IE內(nèi)核瀏覽器進(jìn)程返回下載狀態(tài)信息。本實(shí)施例主要涉及通過多線程下載和資源排序進(jìn)行下載優(yōu)化的方案,是在下載進(jìn)程控制下載的過程中實(shí)現(xiàn)的,也就是說,當(dāng)瀏覽器進(jìn)程接收到IE下載請求時(shí),觸發(fā)下載進(jìn)程執(zhí)行下載,在由下載器正式下載之前,下載管理器會對下載請求對應(yīng)的資源進(jìn)行排序,判斷當(dāng)前文件大小是否超過預(yù)設(shè)閾值,若是,則控制下載器采用多線程下載的方式對當(dāng)前頁面下載請求對應(yīng)的文件進(jìn)行下載。在實(shí)際應(yīng)用中,可以優(yōu)先下載文本類型的文件(如html、CSS、jS等類型的文件), 將多媒體類型的文件(如圖片、flash等大資源的文件)靠后下載,因?yàn)榫W(wǎng)頁的展現(xiàn)并不依賴于它們。下載進(jìn)程中的下載管理器內(nèi)會有一個下載任務(wù)列表,根據(jù)優(yōu)先級,可以確定將新增加的下載任務(wù)放到這個表中的那個位置。比如,html、ess、js這些文本類型的文件都是網(wǎng)頁打開時(shí)必須的,所以可以放入這個表的前面。其他的圖片、flash等多媒體類型的文件則放入表尾。下載器會從表頭中不停的取任務(wù)來開始下載。這樣就實(shí)現(xiàn)了資源排序。在實(shí)際中,每一個頁面下載請求都對應(yīng)一個下載任務(wù),每個下載任務(wù)資源類型是一種。例如,假設(shè)在瀏覽器中訪問http://www. 360. cn/,IE內(nèi)核會產(chǎn)生5個下載請求,請 求的內(nèi)容/類型/順序如下http //www. 360. cn/index. htm ;http //www. 360. cn/360safe. ess ;http: //www. 360. cn/product. swf ;http: //www. 360. cn/360safe. png ;http://www. 360. cn/frame. htm。按照與IE下載請求產(chǎn)生一致的順序,將上述頁面下載請求從IE內(nèi)核瀏覽器進(jìn)程 發(fā)送到下載進(jìn)程。假設(shè)現(xiàn)在下載進(jìn)程內(nèi)的下載任務(wù)列表為空。當(dāng)我們收到http://www. 360. cn/ index, htm的頁面下載請求時(shí),因?yàn)楸硎强盏?,則直接放入隊(duì)列內(nèi)。如表1所示,當(dāng)前的下載 任務(wù)列表中只有一個請求。表1:
權(quán)利要求
1.一種IE內(nèi)核瀏覽器的頁面下載控制方法,其特征在于,包括 啟動IE內(nèi)核瀏覽器進(jìn)程,并啟動預(yù)置的下載進(jìn)程;在所述IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議,等待基于相應(yīng)通信協(xié)議的頁面下載請求; 當(dāng)所述IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請求時(shí),將所述頁面下載請求發(fā)送給下載進(jìn)程;下載進(jìn)程獲取所述頁面下載請求對應(yīng)的文件大小信息;當(dāng)所述文件大小信息超過預(yù)設(shè)的文件大小閾值時(shí),采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作;下載進(jìn)程在所述頁面下載操作過程中向IE內(nèi)核瀏覽器進(jìn)程返回下載狀態(tài)信息。
2.如權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)所述文件大小信息未超過預(yù)設(shè)的文件大小閾值時(shí),采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。
3.如權(quán)利要求1或2所述的方法,其特征在于,還包括所述IE內(nèi)核瀏覽器進(jìn)程依據(jù)所述下載狀態(tài)信息,對下載的頁面數(shù)據(jù)進(jìn)行解析、執(zhí)行、 和/或渲染的操作。
4.如權(quán)利要求1或2所述的方法,其特征在于,所述在IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議的步驟為,使用IInternetSession接口的RegisterNameSpace方法,在IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議,所述通信協(xié)議包括http協(xié)議、https協(xié)議、mailto協(xié)議和FTP協(xié)議。
5.如權(quán)利要求1或2所述的方法,其特征在于,在下載進(jìn)程獲取所述頁面下載請求對應(yīng)的文件大小信息的步驟之前,還包括下載進(jìn)程將所述頁面下載請求添加至預(yù)先生成的下載任務(wù)列表中; 獲取所述頁面下載請求對應(yīng)的頁面資源類型,在所述下載任務(wù)列表中,按照所述頁面資源類型對頁面下載請求進(jìn)行排序;依次處理所述下載任務(wù)列表中的頁面下載請求。
6.如權(quán)利要求5所述的方法,其特征在于,所述頁面下載請求中包括URL信息,所述 URL信息中包括擴(kuò)展名信息,所述頁面下載請求對應(yīng)的頁面資源類型通過讀取所述擴(kuò)展名信息獲取。
7.如權(quán)利要求1或2所述的方法,其特征在于,在下載進(jìn)程獲取所述頁面下載請求對應(yīng)的文件大小信息的步驟之前,還包括下載進(jìn)程根據(jù)所述頁面下載請求判斷所請求的文件是否已被預(yù)先寫入緩存中,若是, 則從緩存中提取該文件;若否,則開始執(zhí)行獲取所述頁面下載請求對應(yīng)的文件大小信息的步驟。
8.如權(quán)利要求7所述的方法,其特征在于,還包括 將下載的文件寫入緩存。
9.如權(quán)利要求8所述的方法,其特征在于,還包括在從緩存中提取文件進(jìn)行下載的步驟之前,查詢該文件寫入緩存的時(shí)間是否超過預(yù)設(shè)期限,若是,則開始執(zhí)行獲取所述頁面下載請求對應(yīng)的文件大小信息的步驟;否則,執(zhí)行從緩存中提取文件的步驟。
10.一種IE內(nèi)核瀏覽器的頁面下載控制系統(tǒng),其特征在于,包括啟動模塊,用于啟動IE內(nèi)核瀏覽器進(jìn)程,并啟動預(yù)置的下載進(jìn)程;協(xié)議注冊模塊,用于在所述IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議,等待基于相應(yīng)通信協(xié)議的頁面下載請求;請求傳送模塊,用于在IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請求時(shí),將所述頁面下載請求發(fā)送給下載進(jìn)程;文件大小獲取模塊,用于由下載進(jìn)程獲取所述頁面下載請求對應(yīng)的文件大小信息;多線程下載模塊,用于在所述文件大小信息超過預(yù)設(shè)的文件大小閾值時(shí),采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作;狀態(tài)匯報(bào)模塊,用于在所述頁面下載操作過程中向IE內(nèi)核瀏覽器進(jìn)程返回下載狀態(tài) fn息ο
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,還包括單線程下載模塊,用于在所述文件大小信息未超過預(yù)設(shè)的文件大小閾值時(shí),采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。
12.如權(quán)利要求10或11所述的系統(tǒng),其特征在于,還包括內(nèi)核操作模塊,用于由所述IE內(nèi)核瀏覽器進(jìn)程依據(jù)所述下載狀態(tài)信息,對下載的頁面數(shù)據(jù)進(jìn)行解析、執(zhí)行、和/或渲染的操作。
13.如權(quán)利要求10或11所述的系統(tǒng),其特征在于,還包括任務(wù)添加模塊,用于由下載進(jìn)程將所述頁面下載請求添加至預(yù)先生成的下載任務(wù)列表中;排序模塊,用于獲取所述頁面下載請求對應(yīng)的頁面資源類型,在所述下載任務(wù)列表中, 按照所述頁面資源類型對頁面下載請求進(jìn)行排序;下載執(zhí)行模塊,用于依次處理所述下載任務(wù)列表中的頁面下載請求,調(diào)用所述文件大小獲取模塊。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述頁面下載請求中包括URL信息,所述 URL信息中包括擴(kuò)展名信息,所述頁面下載請求對應(yīng)的頁面資源類型通過讀取所述擴(kuò)展名信息獲取。
15.如權(quán)利要求13或14所述的系統(tǒng),其特征在于,還包括緩存判斷模塊,用于由下載進(jìn)程根據(jù)所述頁面下載請求判斷所請求的文件是否已被預(yù)先寫入緩存中,若是,則觸發(fā)緩存提取模塊;若否,則觸發(fā)文件大小獲取模塊;緩存提取模塊,用于從緩存中提取該文件。
16.如權(quán)利要求15所述的系統(tǒng),其特征在于,還包括緩存寫入模塊,用于將下載的文件寫入緩存。
17.如權(quán)利要求16所述的系統(tǒng),其特征在于,還包括緩存超期判斷模塊,用于查詢該文件寫入緩存的時(shí)間是否超過預(yù)設(shè)期限,若是,則調(diào)用文件大小獲取模塊,若否,則調(diào)用所述緩存提取模塊。
全文摘要
本發(fā)明提供了一種IE內(nèi)核瀏覽器的頁面下載控制方法和系統(tǒng)。本申請?zhí)峁┑姆椒ò▎覫E內(nèi)核瀏覽器進(jìn)程,并啟動預(yù)置的下載進(jìn)程;在所述IE內(nèi)核瀏覽器進(jìn)程中注冊通信協(xié)議,等待基于相應(yīng)通信協(xié)議的頁面下載請求;當(dāng)所述IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請求時(shí),將所述頁面下載請求發(fā)送給下載進(jìn)程;下載進(jìn)程獲取所述頁面下載請求對應(yīng)的文件大小信息;當(dāng)所述文件大小信息超過預(yù)設(shè)的文件大小閾值時(shí),采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作;下載進(jìn)程在所述頁面下載操作過程中向IE內(nèi)核瀏覽器進(jìn)程返回下載狀態(tài)信息。本申請可以有效控制IE內(nèi)核瀏覽器的頁面下載過程,提高頁面下載的效率和穩(wěn)定性。
文檔編號G06F9/44GK102368213SQ20111028910
公開日2012年3月7日 申請日期2011年9月26日 優(yōu)先權(quán)日2011年9月26日
發(fā)明者劉鴻威, 唐曦 申請人:奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
鹿泉市| 农安县| 垫江县| 电白县| 库尔勒市| 乐清市| 合川市| 社会| 乌鲁木齐县| 宁城县| 二连浩特市| 东莞市| 连州市| 和田市| 紫金县| 桃园市| 前郭尔| 周至县| 运城市| 洪泽县| 平顶山市| 常德市| 灌阳县| 兴义市| 吴旗县| 曲松县| 云南省| 台北市| 达孜县| 永泰县| 奉化市| 清徐县| 万山特区| 界首市| 叙永县| 马尔康县| 德钦县| 常州市| 上栗县| 泸西县| 濉溪县|