国产精品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)核處理頁面的方法和基于瀏覽器的頁面下載方法

      文檔序號(hào):6538780閱讀:316來源:國(guó)知局
      Ie內(nèi)核處理頁面的方法和基于瀏覽器的頁面下載方法
      【專利摘要】本發(fā)明提供了一種IE內(nèi)核瀏覽器的頁面下載控制方法和系統(tǒng),其中,所述方法包括:?jiǎn)?dòng)IE內(nèi)核瀏覽器進(jìn)程,并啟動(dòng)預(yù)置的下載進(jìn)程;在所述IE內(nèi)核瀏覽器進(jìn)程中注冊(cè)通信協(xié)議,等待基于相應(yīng)通信協(xié)議的頁面下載請(qǐng)求;當(dāng)所述IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載,并在所述頁面下載過程中向IE內(nèi)核瀏覽器進(jìn)程返回下載狀態(tài)信息。本發(fā)明可以有效控制IE內(nèi)核瀏覽器的頁面下載過程,提高頁面下載的效率和穩(wěn)定性。
      【專利說明】IE內(nèi)核處理頁面的方法和基于瀏覽器的頁面下載方法
      [0001]本發(fā)明專利申請(qǐng)是申請(qǐng)日為2011年9月26日、申請(qǐng)?zhí)枮?01110289062.5、名稱為“一種IE內(nèi)核瀏覽器的頁面下載控制方法和系統(tǒng)”的中國(guó)發(fā)明專利申請(qǐng)的分案申請(qǐng)。
      【技術(shù)領(lǐng)域】
      [0002]本申請(qǐng)涉及瀏覽器的【技術(shù)領(lǐng)域】,特別是涉及一種IE內(nèi)核瀏覽器的頁面下載控制方法和一種IE內(nèi)核瀏覽器的頁面下載控制系統(tǒng)。
      【背景技術(shù)】
      [0003]瀏覽器最重要的部分是“Rendering Engine”,可大概譯為“解釋引擎”,一般習(xí)慣將之稱為“瀏覽器內(nèi)核”。瀏覽器內(nèi)核負(fù)責(zé)對(duì)網(wǎng)頁語法的解釋(如HTML、JavaScript)并渲染(顯示)網(wǎng)頁。所以,通常所謂的瀏覽器內(nèi)核也就是對(duì)頁面進(jìn)行下載、解析、執(zhí)行、渲染的引擎,該引擎決定了瀏覽器如何顯示網(wǎng)頁的內(nèi)容以及頁面的格式信息。
      [0004]目前市場(chǎng)上流行的瀏覽器,按實(shí)現(xiàn)方式大體可以分為兩種:
      [0005]第一種,瀏覽器的開發(fā)者既進(jìn)行瀏覽器內(nèi)核的開發(fā),也進(jìn)行瀏覽器產(chǎn)品的開發(fā)。如:chrome瀏覽器、firefox瀏覽器、Safari瀏覽器、Internet Explore瀏覽器等。
      [0006]第二種,瀏覽器的開發(fā)者,僅進(jìn)行瀏覽器產(chǎn)品的開發(fā),使用其他瀏覽器廠商實(shí)現(xiàn)的內(nèi)核。將內(nèi)核嵌入到自己瀏覽器內(nèi)來使用。如:360安全瀏覽器、遨游瀏覽器、世界之窗瀏覽器、搜狗瀏覽器等。這種瀏覽器通常采用Internet Explorer瀏覽器內(nèi)核,通常被稱之為“IE內(nèi)核瀏覽器”。
      [0007]目前市場(chǎng)上所有的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)址。在整個(gè)訪問過程中,由WebBrowser組件自己的代碼來進(jìn)行網(wǎng)頁的下載、解析、執(zhí)行、渲染。外殼程序僅需接收組件返回的通知,變更相應(yīng)界面內(nèi)容。
      [0008]IE內(nèi)核為了讓開發(fā)者使用起來非常簡(jiǎn)單,所以暴露的接口非常有限,一般只提供訪問網(wǎng)頁、停止、刷新、后退等基本接口,僅能對(duì)頁面進(jìn)行簡(jiǎn)單的控制,如訪問某網(wǎng)址、刷新、停止、后退等。對(duì)于很多內(nèi)部情況,瀏覽器開發(fā)者毫不知情、無法控制。尤其是無法控制頁面下載過程,從而影響頁面下載的效率和穩(wěn)定性。
      [0009]總之,需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是:如何能夠有效控制IE內(nèi)核瀏覽器的頁面下載過程,以提高頁面下載的效率和穩(wěn)定性。

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

      [0010]本申請(qǐng)所要解決的技術(shù)問題是提供一種IE內(nèi)核瀏覽器的頁面下載控制方法,用以有效控制IE內(nèi)核瀏覽器的頁面下載過程,提高頁面下載的效率和穩(wěn)定性。
      [0011]相應(yīng)地,本申請(qǐng)還提供了一種IE內(nèi)核瀏覽器的頁面下載控制系統(tǒng),用以保證上述方法在實(shí)際中的應(yīng)用。[0012]為解決上述問題,本申請(qǐng)?zhí)峁┝艘环NIE內(nèi)核瀏覽器的頁面下載控制方法,包括:
      [0013]啟動(dòng)IE內(nèi)核瀏覽器進(jìn)程,并啟動(dòng)預(yù)置的下載進(jìn)程;
      [0014]在所述IE內(nèi)核瀏覽器進(jìn)程中注冊(cè)通信協(xié)議,等待基于相應(yīng)通信協(xié)議的頁面下載請(qǐng)求;
      [0015]當(dāng)所述IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載,并在所述頁面下載過程中向IE內(nèi)核瀏覽器進(jìn)程返回下載狀態(tài)信
      肩、O
      [0016]優(yōu)選的是,所述的方法還包括:
      [0017]所述IE內(nèi)核瀏覽器進(jìn)程依據(jù)所述下載狀態(tài)信息,對(duì)下載的頁面數(shù)據(jù)進(jìn)行解析、執(zhí)行、和/或渲染的操作。
      [0018]優(yōu)選的是,所述在IE內(nèi)核瀏覽器進(jìn)程中注冊(cè)通信協(xié)議的步驟為,使用IInternetSession接口的RegisterNameSpace方法,在IE內(nèi)核瀏覽器進(jìn)程中注冊(cè)通信協(xié)議,所述通信協(xié)議包括http協(xié)議、https協(xié)議、mailto協(xié)議和FTP協(xié)議。
      [0019]優(yōu)選的是,所述當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載的步驟包括:
      [0020]當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;
      [0021]下載進(jìn)程將所述頁面下載請(qǐng)求添加至預(yù)先生成的下載任務(wù)列表中;
      [0022]獲取所述頁面下載請(qǐng)求對(duì)應(yīng)的頁面資源類型,在所述下載任務(wù)列表中,按照所述頁面資源類型對(duì)頁面下載請(qǐng)求進(jìn)行排序;
      [0023]依次處理所述下載任務(wù)列表中的頁面下載請(qǐng)求,執(zhí)行相應(yīng)的頁面下載操作。
      [0024]優(yōu)選的是,所述頁面下載請(qǐng)求中包括URL信息,所述URL信息中包括擴(kuò)展名信息,所述頁面下載請(qǐng)求對(duì)應(yīng)的頁面資源類型通過讀取所述擴(kuò)展名信息獲取。
      [0025]優(yōu)選的是,所述當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到IE下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載的步驟包括:
      [0026]當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;
      [0027]下載進(jìn)程獲取所述頁面下載請(qǐng)求對(duì)應(yīng)的文件大小信息;
      [0028]判斷所述文件大小信息是否超過預(yù)設(shè)的文件大小閾值,若是,則采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作,否則,采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。
      [0029]優(yōu)選的是,所述當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載的步驟包括:
      [0030]當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;
      [0031]下載進(jìn)程根據(jù)所述頁面下載請(qǐng)求判斷所請(qǐng)求的文件是否已被預(yù)先寫入緩存中,若是,則從緩存中提取該文件;若否,則根據(jù)所述頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存。
      [0032]優(yōu)選的是,所述當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載的步驟還包括:[0033]在從緩存中提取文件進(jìn)行下載的步驟之前,查詢?cè)撐募懭刖彺娴臅r(shí)間是否超過預(yù)設(shè)期限,若是,則根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存。
      [0034]優(yōu)選的是,所述當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載的步驟包括:
      [0035]當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;其中,所述頁面下載請(qǐng)求中包括URL信息,所述URL信息中包括擴(kuò)展名信息;
      [0036]下載進(jìn)程將所述頁面下載請(qǐng)求添加至預(yù)先生成的下載任務(wù)列表中;
      [0037]讀取所述頁面下載請(qǐng)求的擴(kuò)展名信息獲取對(duì)應(yīng)的頁面資源類型,在所述下載任務(wù)列表中,按照所述頁面資源類型對(duì)頁面下載請(qǐng)求進(jìn)行排序;
      [0038]依次處理所述下載任務(wù)列表中的頁面下載請(qǐng)求,獲取頁面下載請(qǐng)求對(duì)應(yīng)的文件大小信息;
      [0039]判斷所述文件大小信息是否超過預(yù)設(shè)的文件大小閾值,若是,則采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作,否則,采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。
      [0040]優(yōu)選的是,所述當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載的步驟包括:
      [0041]當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;其中,所述頁面下載請(qǐng)求中包括URL信息,所述URL信息中包括擴(kuò)展名信息;
      [0042]下載進(jìn)程根據(jù)所述頁面下載請(qǐng)求判斷所請(qǐng)求的文件是否已被預(yù)先寫入緩存中,若是,則查詢?cè)撐募懭刖彺娴臅r(shí)間是否超過預(yù)設(shè)期限,若是,則根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存;若否,則從緩存中提取該文件;
      [0043]若所述頁面下載請(qǐng)求相應(yīng)的文件未被預(yù)先寫入緩存中,則根據(jù)所述頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存。
      [0044]其中,所述根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件的步驟包括:
      [0045]下載進(jìn)程將所述頁面下載請(qǐng)求添加至預(yù)先生成的下載任務(wù)列表中;
      [0046]讀取所述頁面下載請(qǐng)求的擴(kuò)展名信息獲取對(duì)應(yīng)的頁面資源類型,在所述下載任務(wù)列表中,按照所述頁面資源類型對(duì)頁面下載請(qǐng)求進(jìn)行排序;
      [0047]依次處理所述下載任務(wù)列表中的頁面下載請(qǐng)求,執(zhí)行相應(yīng)的頁面下載操作。
      [0048]優(yōu)選的是,所述當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到IE下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載的步驟包括:
      [0049]當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;
      [0050]下載進(jìn)程根據(jù)所述頁面下載請(qǐng)求判斷所請(qǐng)求的文件是否已被預(yù)先寫入緩存中,若是,則查詢?cè)撐募懭刖彺娴臅r(shí)間是否超過預(yù)設(shè)期限,若是,則根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存;若否,則從緩存中提取該文件;
      [0051]若所述頁面下載請(qǐng)求相應(yīng)的文件未被預(yù)先寫入緩存中,則根據(jù)所述頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存。
      [0052]其中,所述根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件的步驟包括:
      [0053]下載進(jìn)程獲取所述頁面下載請(qǐng)求對(duì)應(yīng)的文件大小信息;
      [0054]判斷所述文件大小信息是否超過預(yù)設(shè)的文件大小閾值,若是,則采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作,否則,采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。
      [0055]優(yōu)選的是,所述當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載的步驟包括:
      [0056]當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;其中,所述頁面下載請(qǐng)求中包括URL信息,所述URL信息中包括擴(kuò)展名信息;
      [0057]下載進(jìn)程根據(jù)所述頁面下載請(qǐng)求判斷所請(qǐng)求的文件是否已被預(yù)先寫入緩存中,若是,則查詢?cè)撐募懭刖彺娴臅r(shí)間是否超過預(yù)設(shè)期限,若是,則根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存;若否,則從緩存中提取該文件;
      [0058]若所述頁面下載請(qǐng)求相應(yīng)的文件未被預(yù)先寫入緩存中,則根據(jù)所述頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存。
      [0059]其中,所述根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件的步驟包括:
      [0060]下載進(jìn)程將所述頁面下載請(qǐng)求添加至預(yù)先生成的下載任務(wù)列表中;
      [0061]讀取所述頁面下載請(qǐng)求的擴(kuò)展名信息獲取對(duì)應(yīng)的頁面資源類型,在所述下載任務(wù)列表中,按照所述頁面資源類型對(duì)頁面下載請(qǐng)求進(jìn)行排序;
      [0062]依次處理所述下載任務(wù)列表中的頁面下載請(qǐng)求,獲取頁面下載請(qǐng)求對(duì)應(yīng)的文件大小信息;
      [0063]判斷所述文件大小信息是否超過預(yù)設(shè)的文件大小閾值,若是,則采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作,否則,采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。
      [0064]本申請(qǐng)實(shí)施例還公開了一種IE內(nèi)核瀏覽器的頁面下載控制系統(tǒng),包括:
      [0065]啟動(dòng)模塊,用于啟動(dòng)IE內(nèi)核瀏覽器進(jìn)程,并啟動(dòng)預(yù)置的下載進(jìn)程;
      [0066]協(xié)議注冊(cè)模塊,用于在所述IE內(nèi)核瀏覽器進(jìn)程中注冊(cè)通信協(xié)議,等待基于相應(yīng)通信協(xié)議的頁面下載請(qǐng)求;
      [0067]下載控制模塊,用于在所述IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載;
      [0068]狀態(tài)匯報(bào)模塊,用于在所述頁面下載過程中向IE內(nèi)核瀏覽器進(jìn)程返回下載狀態(tài)信息。
      [0069]優(yōu)選的是,所述頁面下載控制系統(tǒng),還包括:
      [0070]內(nèi)核操作模塊,用于由所述IE內(nèi)核瀏覽器進(jìn)程依據(jù)所述下載狀態(tài)信息,對(duì)下載的頁面數(shù)據(jù)進(jìn)行解析、執(zhí)行、和/或渲染的操作。
      [0071]優(yōu)選的是,所述下載控制模塊包括:
      [0072]請(qǐng)求傳送子模塊,用于在IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;
      [0073]任務(wù)添加子模塊,用于由下載進(jìn)程將所述頁面下載請(qǐng)求添加至預(yù)先生成的下載任務(wù)列表中;
      [0074]排序子模塊,用于獲取所述頁面下載請(qǐng)求對(duì)應(yīng)的頁面資源類型,在所述下載任務(wù)列表中,按照所述頁面資源類型對(duì)頁面下載請(qǐng)求進(jìn)行排序;
      [0075]下載執(zhí)行子模塊,用于依次處理所述下載任務(wù)列表中的頁面下載請(qǐng)求,執(zhí)行相應(yīng)的頁面下載操作。
      [0076]優(yōu)選的是,所述頁面下載請(qǐng)求中包括URL信息,所述URL信息中包括擴(kuò)展名信息,所述頁面下載請(qǐng)求對(duì)應(yīng)的頁面資源類型通過讀取所述擴(kuò)展名信息獲取。
      [0077]優(yōu)選的是,所述下載控制模塊包括:
      [0078]請(qǐng)求傳送子模塊,用于在IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;
      [0079]文件大小獲取子模塊,用于由下載進(jìn)程獲取所述頁面下載請(qǐng)求對(duì)應(yīng)的文件大小信息;
      [0080]文件大小判斷子模塊,用于判斷所述文件大小信息是否超過預(yù)設(shè)的文件大小閾值,若是,則調(diào)用多線程下載子模塊;否則,調(diào)用單線程下載子模塊;
      [0081]多線程下載子模塊,用于采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作;
      [0082]單線程下載子模塊,用于采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。
      [0083]優(yōu)選的是,所述下載控制模塊包括:
      [0084]請(qǐng)求傳送子模塊,用于在IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;
      [0085]緩存判斷子模塊,用于由下載進(jìn)程根據(jù)所述頁面下載請(qǐng)求判斷所請(qǐng)求的文件是否已被預(yù)先寫入緩存中,若是,則觸發(fā)緩存提取子模塊;若否,則觸發(fā)服務(wù)器下載子模塊;
      [0086]緩存提取子模塊,用于從緩存中提取該文件;
      [0087]服務(wù)器下載子模塊,用于根據(jù)所述頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存。
      [0088]優(yōu)選的是,所述下載控制模塊還包括:
      [0089]緩存超期判斷子模塊,用于在觸發(fā)緩存提取子模塊之前,查詢?cè)撐募懭刖彺娴臅r(shí)間是否超過預(yù)設(shè)期限,若是,則調(diào)用服務(wù)器下載子模塊。
      [0090]與現(xiàn)有技術(shù)相比,本申請(qǐng)具有以下優(yōu)點(diǎn):
      [0091]本申請(qǐng)使用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)程不會(huì)隨之崩潰,可以重新啟動(dòng)一個(gè)下載進(jìn)程繼續(xù)下載。因而,本申請(qǐng)可以有效控制IE內(nèi)核瀏覽器的頁面下載過程,以提高頁面下載的效率和穩(wěn)定性。
      [0092]再者,本申請(qǐng)通過采用資源排序、多線程下載和緩存讀寫的下載優(yōu)化方案,能提升下載速度和頁面展現(xiàn)速度,充分發(fā)揮用戶的帶寬,提高資源利用率。
      【專利附圖】

      【附圖說明】
      [0093]圖1是本申請(qǐng)的一種IE內(nèi)核瀏覽器的頁面下載控制方法實(shí)施例的步驟流程圖;
      [0094]圖2是是本申請(qǐng)的一種IE內(nèi)核瀏覽器的頁面下載控制系統(tǒng)實(shí)施例的結(jié)構(gòu)框圖。
      【具體實(shí)施方式】
      [0095]為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說明。
      [0096]本申請(qǐng)的核心構(gòu)思在于,使嵌入IE內(nèi)核瀏覽器的外殼程序,能夠自行控制瀏覽器內(nèi)核的下載,并將下載后的數(shù)據(jù)送回IE內(nèi)核,讓其繼續(xù)執(zhí)行解析、執(zhí)行、渲染的工作。
      [0097]參考圖1,示出了本申請(qǐng)的一種IE內(nèi)核瀏覽器的頁面下載控制方法實(shí)施例的步驟流程圖,具體可以包括以下步驟:
      [0098]步驟101、啟動(dòng)IE內(nèi)核瀏覽器進(jìn)程,并啟動(dòng)預(yù)置的下載進(jìn)程;
      [0099]在本申請(qǐng)實(shí)施例中,所述IE內(nèi)核瀏覽器進(jìn)程是指采用IE(Internet Explorer)瀏覽器內(nèi)核的瀏覽器進(jìn)程?,F(xiàn)有技術(shù)中,瀏覽器內(nèi)核負(fù)責(zé)對(duì)頁面進(jìn)行下載、解析、執(zhí)行、渲染,而在本實(shí)施例中,IE瀏覽器內(nèi)核僅用于完成解析、執(zhí)行、渲染的操作,下載的操作由預(yù)置的下載進(jìn)程完成。
      [0100]公知的是,進(jìn)程是一個(gè)正在執(zhí)行的程序,即計(jì)算機(jī)中正在運(yùn)行的程序?qū)嵗?;其可以分配給處理器并作為一個(gè)實(shí)體由處理器執(zhí)行。從用戶角度來看,瀏覽器進(jìn)程可以理解為在任務(wù)管理器內(nèi)所啟動(dòng)的瀏覽器代表的進(jìn)程。
      [0101]所述下載進(jìn)程可以理解為IE內(nèi)核瀏覽器的另外一個(gè)進(jìn)程,是一個(gè)專門用于下載操作的進(jìn)程。即所述下載進(jìn)程專門用于下載,而不做其他操作。作為本申請(qǐng)實(shí)施例具體實(shí)現(xiàn)的一種示例,所述下載進(jìn)程內(nèi)部可以使用WinHTTP (WinHTTP的全稱是Microsoft WindowsHTTP Services,它提供給開發(fā)者一個(gè)HTTP客戶端應(yīng)用程序接口,通過這種API借助HTTP協(xié)議給其他的HTTP服務(wù)器發(fā)送請(qǐng)求)實(shí)現(xiàn)一個(gè)下載器,和一個(gè)下載管理器。即所述下載進(jìn)程中可以包括一個(gè)下載管理器和一些下載器,其中,所述下載管理器可以用于按照預(yù)設(shè)的下載規(guī)則控制頁面下載,例如對(duì)下載資源的請(qǐng)求進(jìn)行排序、優(yōu)化等;下載器則可以用于實(shí)現(xiàn)具體的下載操作,并通過下載管理器向IE內(nèi)核瀏覽器進(jìn)程報(bào)告下載情況,即下載狀態(tài)信息。在實(shí)際中,這個(gè)下載進(jìn)程就像一個(gè)服務(wù),啟動(dòng)后隨時(shí)等待被調(diào)用。
      [0102]在本申請(qǐng)實(shí)施例中,所述IE內(nèi)核瀏覽器進(jìn)程啟動(dòng)時(shí),所述下載進(jìn)程也會(huì)啟動(dòng),或者說,所述IE內(nèi)核瀏覽器進(jìn)程啟動(dòng)則會(huì)觸發(fā)所述下載進(jìn)程啟動(dòng),以保證頁面在瀏覽器中的正常展現(xiàn)。
      [0103]步驟102、在所述IE內(nèi)核瀏覽器進(jìn)程中注冊(cè)通信協(xié)議,等待基于相應(yīng)通信協(xié)議的頁面下載請(qǐng)求;
      [0104]在具體實(shí)現(xiàn)中,所述在IE內(nèi)核瀏覽器進(jìn)程中注冊(cè)通信協(xié)議的步驟可以為,使用IInternetSession接口的RegisterNameSpace方法,在IE內(nèi)核瀏覽器進(jìn)程中注冊(cè)通信協(xié)議,所述通信協(xié)議可以包括http協(xié)議、https協(xié)議、mailto協(xié)議和FTP協(xié)議等。
      [0105]具體而言,IInternetSession接口的 RegisterNameSpace 方法,要求了一個(gè)固定格式的接口,使用這個(gè)方法在IE內(nèi)核瀏覽器進(jìn)程中注冊(cè)通信協(xié)議之后,則所有采用相應(yīng)通信協(xié)議的頁面下載請(qǐng)求,都會(huì)傳送到預(yù)設(shè)的外殼程序接口,即當(dāng)發(fā)生任何采用相應(yīng)通信協(xié)議(如http、https協(xié)議、mailto協(xié)議、FTP協(xié)議)的頁面下載請(qǐng)求時(shí),IE內(nèi)核會(huì)通知或調(diào)用預(yù)設(shè)的外殼程序接口。
      [0106]步驟103、當(dāng)所述IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載,并在所述頁面下載過程中向IE內(nèi)核瀏覽器進(jìn)程返回下載狀態(tài)信息。
      [0107]在具體實(shí)現(xiàn)中,當(dāng)IE內(nèi)核調(diào)用在通信協(xié)議注冊(cè)過程中提供的IlnternetProtocol接口的Start方法時(shí),通過跨進(jìn)程通信,將頁面下載請(qǐng)求發(fā)送到下載進(jìn)程,并返回操作符E_PENDING,通知IE內(nèi)核操作正在執(zhí)行中。當(dāng)下載到數(shù)據(jù)后,下載進(jìn)程會(huì)通知到發(fā)起下載的IE內(nèi)核瀏覽器進(jìn)程,IE內(nèi)核瀏覽器進(jìn)程調(diào)用IE內(nèi)核提供的IInternetProtocolSink接口的相關(guān)方法,通知IE內(nèi)核下載進(jìn)度、下載到的數(shù)據(jù)等下載狀態(tài)信息。
      [0108]更具體而言,跨進(jìn)程通信,是指將一個(gè)進(jìn)程的請(qǐng)求轉(zhuǎn)到另一個(gè)進(jìn)程,在本實(shí)施例中即指將IE內(nèi)核瀏覽器進(jìn)程的頁面下載請(qǐng)求轉(zhuǎn)到下載進(jìn)程,并在下載過程中,實(shí)時(shí)向IE內(nèi)核報(bào)告下載進(jìn)度和下載數(shù)據(jù)等下載狀態(tài)信息??邕M(jìn)程通信可以使用windows消息機(jī)制,并配合內(nèi)核對(duì)象進(jìn)行數(shù)據(jù)傳輸。例如,在IE瀏覽器進(jìn)程中注冊(cè)了 http協(xié)議后,一旦有基于http協(xié)議的頁面下載請(qǐng)求就會(huì)送到預(yù)設(shè)的瀏覽器外殼程序中。當(dāng)IE內(nèi)核調(diào)用所述外殼程序的時(shí)候,會(huì)將這個(gè)頁面下載請(qǐng)求的相關(guān)信息都傳遞過來,外殼程序會(huì)將這些信息打包(放到一個(gè)數(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)度。
      [0109]簡(jiǎn)而言之,跨進(jìn)程通信是雙方的,首先,IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求后,會(huì)通過跨進(jìn)程通信,告訴下載進(jìn)程那些文件需要下載。另一方面,當(dāng)下載請(qǐng)求執(zhí)行過程中,下載進(jìn)程會(huì)向IE內(nèi)核瀏覽器進(jìn)程發(fā)送消息,通知其下載進(jìn)度、下載數(shù)據(jù)等下載狀態(tài)信息。
      [0110]在本申請(qǐng)的一種優(yōu)選實(shí)施例中,所述步驟103中,當(dāng)IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程按照預(yù)設(shè)的下載規(guī)則控制頁面下載的步驟具體可以包括以下子步驟:
      [0111]子步驟Sll、i IE內(nèi)核瀏覽器進(jìn)程收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;
      [0112]子步驟S12、下載進(jìn)程將所述頁面下載請(qǐng)求添加至預(yù)先生成的下載任務(wù)列表中;
      [0113]子步驟S13、獲取所述頁面下載請(qǐng)求對(duì)應(yīng)的頁面資源類型,在所述下載任務(wù)列表中,按照所述頁面資源類型對(duì)頁面下載請(qǐng)求進(jìn)行排序;
      [0114]子步驟S14、依次處理所述下載任務(wù)列表中的頁面下載請(qǐng)求,執(zhí)行相應(yīng)的頁面下載操作。
      [0115]在實(shí)際中,所述頁面下載請(qǐng)求中包括URL信息,所述URL信息中包括擴(kuò)展名信息,在這種情況下,所述頁面下載請(qǐng)求對(duì)應(yīng)的頁面資源類型可以通過讀取所述擴(kuò)展名信息獲取。
      [0116]本實(shí)施例主要涉及通過資源排序進(jìn)行下載優(yōu)化的方案,是在下載進(jìn)程控制下載的過程中實(shí)現(xiàn)的,也就是說,當(dāng)瀏覽器進(jìn)程接收到IE下載請(qǐng)求時(shí),觸發(fā)下載進(jìn)程執(zhí)行下載,在由下載器正式下載之前,下載管理器會(huì)對(duì)下載請(qǐng)求對(duì)應(yīng)的資源進(jìn)行排序。
      [0117]在實(shí)際應(yīng)用中,可以優(yōu)先下載文本類型的文件(如html、CSS、jS等類型的文件),將多媒體類型的文件(如圖片、flash等大資源的文件)靠后下載,因?yàn)榫W(wǎng)頁的展現(xiàn)并不依賴于它們。下載進(jìn)程中的下載管理器內(nèi)會(huì)有一個(gè)下載任務(wù)列表,根據(jù)優(yōu)先級(jí),可以確定將新增加的下載任務(wù)放到這個(gè)表中的那個(gè)位置。比如,html、css、js這些文本類型的文件都是網(wǎng)頁打開時(shí)必須的,所以可以放入這個(gè)表的前面。其他的圖片、flash等多媒體類型的文件則放入表尾。下載器會(huì)從表頭中不停的取任務(wù)來開始下載。這樣就實(shí)現(xiàn)了資源排序。
      [0118]在實(shí)際中,每一個(gè)頁面下載請(qǐng)求都對(duì)應(yīng)一個(gè)下載任務(wù),每個(gè)下載任務(wù)資源類型是一種。
      [0119]例如,假設(shè)在瀏覽器中訪問http://www.#/, IE內(nèi)核會(huì)產(chǎn)生5個(gè)下載請(qǐng)求,請(qǐng)求的內(nèi)容/類型/順序如下:
      [0120]http://www.#/index, htm ;
      [0121]http://www.#/360safe.css ;
      [0122]http://www.#/product.swf ;
      [0123]http://www.#/360safe.png ;
      [0124]http://www.#/frame, htm。
      [0125]按照與IE下載請(qǐng)求產(chǎn)生一致的順序,將上述頁面下載請(qǐng)求從IE內(nèi)核瀏覽器進(jìn)程發(fā)送到下載進(jìn)程。
      [0126]假設(shè)現(xiàn)在下載進(jìn)程內(nèi)的下載任務(wù)列表為空。當(dāng)我們收到http://www.#/index, htm的頁面下載請(qǐng)求時(shí),因?yàn)楸硎强盏?則直接放入隊(duì)列內(nèi)。如表1所示,當(dāng)前的下載任務(wù)列表中只有一個(gè)請(qǐng)求。
      [0127]表1:
      [0128]
      【權(quán)利要求】
      1.一種IE內(nèi)核處理頁面的方法,其包括: 當(dāng)IE內(nèi)核瀏覽器進(jìn)程接收到頁面下載請(qǐng)求時(shí),觸發(fā)所述下載進(jìn)程對(duì)頁面進(jìn)行下載,所述下載進(jìn)程是用于下載的進(jìn)程; 所述IE內(nèi)核瀏覽器進(jìn)程對(duì)所述下載進(jìn)程下載完成得到的頁面數(shù)據(jù)進(jìn)行解析、執(zhí)行和/或渲染。
      2.如權(quán)利要求1所述的方法,其中,所述下載進(jìn)程對(duì)頁面進(jìn)行下載進(jìn)一步包括: 所述下載進(jìn)程將所述頁面下載請(qǐng)求添加至預(yù)先生成的下載任務(wù)列表中; 獲取所述頁面下載請(qǐng)求對(duì)應(yīng)的頁面資源類型; 在所述下載任務(wù)列表中,按照所述頁面資源類型對(duì)頁面下載請(qǐng)求進(jìn)行排序; 依次處理所述下載任務(wù)列表中的頁面下載請(qǐng)求,執(zhí)行相應(yīng)的頁面下載操作。
      3.如權(quán)利要求2所述的方法,其中,所述頁面下載請(qǐng)求中包括URL信息,所述URL信息中包括擴(kuò)展名信息,所述頁面下載請(qǐng)求對(duì)應(yīng)的頁面資源類型通過讀取所述擴(kuò)展名信息獲取。
      4.如權(quán)利要求1所述的方法,其中,所述下載進(jìn)程對(duì)頁面進(jìn)行下載進(jìn)一步包括: 所述下載進(jìn)程獲取所述頁面下載請(qǐng)求對(duì)應(yīng)的文件大小信息; 判斷所述文件大小信息是否超過預(yù)設(shè)的文件大小閾值; 如果是,則采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作,否則,采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。
      5.如權(quán)利要求1所述的方法,其中,所述下載進(jìn)程對(duì)頁面進(jìn)行下載進(jìn)一步包括: 所述下載進(jìn)程根據(jù)所述頁面下載請(qǐng)求判斷所請(qǐng)求的文件是否已被預(yù)先寫入緩存中; 如果是,則從緩存中提取該文件,否則根據(jù)所述頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存。
      6.如權(quán)利要求5所述的方法,其中,所述下載進(jìn)程對(duì)頁面進(jìn)行下載還包括: 在從緩存中提取該文件之前,查詢?cè)撐募懭刖彺娴臅r(shí)間是否超過預(yù)設(shè)期限; 如果超過預(yù)設(shè)期限,則根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存。
      7.一種基于瀏覽器的頁面下載方法,其包括: 當(dāng)IE內(nèi)核瀏覽器進(jìn)程接收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程,其中,所述頁面下載請(qǐng)求中包括URL信息,所述URL信息中包括擴(kuò)展名信息,所述下載進(jìn)程是用于下載的進(jìn)程; 所述下載進(jìn)程將所述頁面下載請(qǐng)求添加至預(yù)先生成的下載任務(wù)列表中; 讀取所述頁面下載請(qǐng)求的擴(kuò)展名信息以獲取對(duì)應(yīng)的頁面資源類型; 在所述下載任務(wù)列表中,按照所述頁面資源類型對(duì)頁面下載請(qǐng)求進(jìn)行排序; 依次處理所述下載任務(wù)列表中的頁面下載請(qǐng)求并獲取頁面下載請(qǐng)求對(duì)應(yīng)的文件大小信息; 判斷所述文件大小信息是否超過預(yù)設(shè)的文件大小閾值; 如果大于閾值,則采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作,否則,采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。
      8.如權(quán)利要求7所述的方法,還包括:所述IE內(nèi)核瀏覽器進(jìn)程對(duì)所述下載進(jìn)程下載完成得到的頁面數(shù)據(jù)進(jìn)行解析、執(zhí)行和/或渲染。
      9.一種基于瀏覽器的頁面下載方法,其包括: 當(dāng)IE內(nèi)核瀏覽器進(jìn)程接收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程,其中,所述頁面下載請(qǐng)求中包括URL信息,所述URL信息中包括擴(kuò)展名信息,所述下載進(jìn)程是用于下載的進(jìn)程; 所述下載進(jìn)程根據(jù)所述頁面下載請(qǐng)求判斷所請(qǐng)求的文件是否已被預(yù)先寫入緩存中; 如果已被預(yù)先寫入緩存,則查詢?cè)撐募懭刖彺娴臅r(shí)間是否超過預(yù)設(shè)期限; 如果超過預(yù)設(shè)期限,則根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存;否則從緩存中提取該文件; 如果所述頁面下載請(qǐng)求相應(yīng)的文件未被預(yù)先寫入緩存中,則根據(jù)所述頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存。
      10.如權(quán)利要求9所述的方法,其中,所述根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件的步驟包括: 所述下載進(jìn)程將所述頁面下載請(qǐng)求添加至預(yù)先生成的下載任務(wù)列表中; 讀取所述頁面下載請(qǐng)求的擴(kuò)展名信息以獲取對(duì)應(yīng)的頁面資源類型; 在所述下載任務(wù)列表中,按照所述頁面資源類型對(duì)頁面下載請(qǐng)求進(jìn)行排序; 依次處理所述下載任務(wù)列表中的頁面下載請(qǐng)求并執(zhí)行相應(yīng)的頁面下載操作。
      11.如權(quán)利要求9所述的方法,其中,所述根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件的步驟包括: 所述下載進(jìn)程獲取所述頁面下載請(qǐng)求對(duì)應(yīng)的文件大小信息; 判斷所述文件大小信息是否超過預(yù)設(shè)的文件大小閾值; 如果超過預(yù)設(shè)的文件大小閾值,則采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作,否則采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。
      12.如權(quán)利要求9至11中任一項(xiàng)所述的方法,還包括: 所述IE內(nèi)核瀏覽器進(jìn)程對(duì)所述下載進(jìn)程下載完成得到的頁面數(shù)據(jù)進(jìn)行解析、執(zhí)行和/或渲染。
      13.—種基于瀏覽器的頁面下載方法,其包括: 當(dāng)IE內(nèi)核瀏覽器進(jìn)程接收到頁面下載請(qǐng)求時(shí),將所述頁面下載請(qǐng)求發(fā)送給下載進(jìn)程;其中,所述頁面下載請(qǐng)求中包括URL信息,所述URL信息中包括擴(kuò)展名信息,所述下載進(jìn)程是用于下載的進(jìn)程; 所述下載進(jìn)程根據(jù)所述頁面下載請(qǐng)求判斷所請(qǐng)求的文件是否已被預(yù)先寫入緩存中; 如果已被預(yù)先寫入緩存,則查詢?cè)撐募懭刖彺娴臅r(shí)間是否超過預(yù)設(shè)期限; 如果超過預(yù)設(shè)期限,則根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存;否則從緩存中提取該文件; 如果所述頁面下載請(qǐng)求相應(yīng)的文件未被預(yù)先寫入緩存中,則根據(jù)所述頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件,并將該文件寫入緩存; 其中,所述根據(jù)頁面下載請(qǐng)求從服務(wù)器下載相應(yīng)的文件的步驟包括: 下載進(jìn)程將所述頁面下載請(qǐng)求添加至預(yù)先生成的下載任務(wù)列表中;讀取所述頁面下載請(qǐng)求的擴(kuò)展名信息獲取對(duì)應(yīng)的頁面資源類型,在所述下載任務(wù)列表中,按照所述頁面資源類型對(duì)頁面下載請(qǐng)求進(jìn)行排序; 依次處理所述下載任務(wù)列表中的頁面下載請(qǐng)求并獲取頁面下載請(qǐng)求對(duì)應(yīng)的文件大小信息; 判斷所述文件大小信息是否超過預(yù)設(shè)的文件大小閾值; 如果大于閾值,則采用多線程下載的方式執(zhí)行相應(yīng)頁面的下載操作,否則采用單線程下載的方式執(zhí)行相應(yīng)頁面的下載操作。
      14.如權(quán)利要求13所述的方法,還包括: 所述IE內(nèi)核瀏覽器進(jìn)程對(duì)所述下載進(jìn)程下載完成得到的頁面數(shù)據(jù)進(jìn)行解析、執(zhí)行和/或渲染。
      【文檔編號(hào)】G06F17/30GK103838838SQ201410065243
      【公開日】2014年6月4日 申請(qǐng)日期:2011年9月26日 優(yōu)先權(quán)日:2011年9月26日
      【發(fā)明者】劉鴻威, 唐曦 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1