一種提高網(wǎng)頁顯示速度的方法及裝置制造方法
【專利摘要】本發(fā)明提供一種提高網(wǎng)頁顯示速度的方法及裝置,屬于互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】。所述方法應(yīng)用于web代理網(wǎng)關(guān)中,包括:接收到客戶端的頁面請求時,獲取所述頁面請求對應(yīng)的頁面文件;根據(jù)客戶端的特征和/或頁面文件的特征,確定需要預(yù)先下載的資源;在頁面文件中增加預(yù)下載代碼,所述預(yù)下載代碼用于指示客戶端加載所述頁面文件之后,下載并緩存所述需要預(yù)先下載的資源;將修改后的頁面文件發(fā)送給客戶端。根據(jù)本發(fā)明,能夠使客戶端提前作資源的請求,而不受制于用戶瀏覽頁面順序的限制,從而能夠提高網(wǎng)頁顯示速度,增強用戶體驗。
【專利說明】一種提高網(wǎng)頁顯示速度的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,特別涉及一種提高網(wǎng)頁顯示速度的方法及裝置。
【背景技術(shù)】
[0002]瀏覽器或者http應(yīng)用的客戶端(統(tǒng)稱為http客戶端)需要獲取網(wǎng)絡(luò)資源時,會發(fā)送http請求到web服務(wù)器,所述http請求中攜帶該網(wǎng)絡(luò)資源的url信息,web服務(wù)器接收到http請求后,根據(jù)url信息獲取該網(wǎng)絡(luò)資源,并構(gòu)造http響應(yīng)將該網(wǎng)絡(luò)資源發(fā)送到客戶端。
[0003]但是,http (網(wǎng)頁,應(yīng)用)資源下載順序受限于頁面瀏覽的順序,在現(xiàn)有技術(shù)中,只是在切換頁面瀏覽的時候,客戶端才會發(fā)送新的資源請求,從而使得頁面的顯示速度較慢,影響用戶的網(wǎng)頁瀏覽體驗。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的目的是提供一種提高網(wǎng)頁顯示速度的方法及裝置。
[0005]為實現(xiàn)上述目的,本發(fā)明提供技術(shù)方案如下:
[0006]一種提高網(wǎng)頁顯示速度的方法,應(yīng)用于web代理網(wǎng)關(guān)中,所述方法包括:
[0007]接收到客戶端的頁面請求時,獲取所述頁面請求對應(yīng)的頁面文件;
[0008]根據(jù)客戶端的特征和/或頁面文件的特征,確定需要預(yù)先下載的資源;
[0009]在頁面文件中增加預(yù)下載代碼,所述預(yù)下載代碼用于指示客戶端加載所述頁面文件之后,下載并緩存所述需要預(yù)先下載的資源;
[0010]將修改后的頁面文件發(fā)送給客戶端。
[0011]上述的方法,其中:所述客戶端的特征包括以下特征中的一個或多個:客戶端訪問歷史信息和客戶端的cookie信息;
[0012]所述需要預(yù)先下載的資源包括以下資源中的一個或多個:用戶從當(dāng)前頁面可能點擊的頁面或者頁面中引用的資源、當(dāng)前頁面異步內(nèi)容和用戶過去點擊過的內(nèi)容。
[0013]上述的方法,其中,所述根據(jù)客戶端的特征和/或頁面文件的特征,確定需要預(yù)先下載的資源,包括:
[0014]根據(jù)用戶訪問頁面的先后順序,確定當(dāng)前頁面的下一個頁面,將下一個頁面以及下一個頁面引用的資源作為需要預(yù)先下載的資源。
[0015]上述的方法,其中:所述預(yù)下載代碼為javascript代碼。
[0016]一種提高網(wǎng)頁顯示速度的裝置,應(yīng)用于web代理網(wǎng)關(guān)中,所述裝置包括:
[0017]獲取單元,用于接收到客戶端的頁面請求時,獲取所述頁面請求對應(yīng)的頁面文件;
[0018]確定單元,用于根據(jù)客戶端的特征和/或頁面文件的特征,確定需要預(yù)先下載的資源;
[0019]修改單元,用于在頁面文件中增加預(yù)下載代碼,所述預(yù)下載代碼用于指示客戶端加載所述頁面文件之后,下載并緩存所述需要預(yù)先下載的資源;
[0020]發(fā)送單元,用于將修改后的頁面文件發(fā)送給客戶端。
[0021]上述的裝置,其中:所述客戶端的特征包括以下特征中的一個或多個:客戶端訪問歷史信息和客戶端的cookie信息;
[0022]所述需要預(yù)先下載的資源包括以下資源中的一個或多個:用戶從當(dāng)前頁面可能點擊的頁面或者頁面中引用的資源、當(dāng)前頁面異步內(nèi)容和用戶過去點擊過的內(nèi)容。
[0023]上述的裝置,其中,所述確定單元進一步用于:
[0024]根據(jù)用戶訪問頁面的先后順序,確定當(dāng)前頁面的下一個頁面,將下一個頁面以及下一個頁面引用的資源作為需要預(yù)先下載的資源。
[0025]上述的裝置,其中:所述預(yù)下載代碼為javascript代碼。
[0026]本發(fā)明基于客戶端的特征和/或頁面文件的特征,做出相應(yīng)的預(yù)加載策略,使得客戶端提前作資源的請求,而不受制于用戶瀏覽頁面順序的限制,從而能夠提高網(wǎng)頁顯示速度,增強用戶體驗。
[0027]而且,本發(fā)明是在web代理網(wǎng)關(guān)中實現(xiàn),不需要對客戶端和服務(wù)器做改動,實現(xiàn)起來簡單方便。
【專利附圖】
【附圖說明】
[0028]圖1是根據(jù)本發(fā)明一個實施例的提高網(wǎng)頁顯示速度的系統(tǒng)結(jié)構(gòu)圖;
[0029]圖2是根據(jù)本發(fā)明一個實施例的提高網(wǎng)頁顯示速度的裝置結(jié)構(gòu)圖;
[0030]圖3是根據(jù)本發(fā)明一個實施例的提高網(wǎng)頁顯示速度的方法流程圖。
【具體實施方式】
[0031]以下結(jié)合附圖對本發(fā)明實施例進行詳細(xì)描述。
[0032]超文本傳輸協(xié)議(HyperText Transfer Protocol,HTTP)中設(shè)計有 web 緩存,web緩存主要有以下幾個作用:首先緩存能夠減少冗余數(shù)據(jù)的傳輸,可以減少網(wǎng)絡(luò)成本;其次緩存能夠減少客戶端瀏覽器對遠端網(wǎng)站服務(wù)器的依賴,從而提高了客戶端瀏覽器裝載頁面的速度。
[0033]緩存一般可以分為私有緩存和共享緩存兩大類,比如在個人PC機上的緩存一般稱為私有緩存。而對于一些門戶網(wǎng)站,為了快速地響應(yīng)各地用戶請求,通常會使用共享緩存,即在用戶端設(shè)備和網(wǎng)站服務(wù)器之間設(shè)置web代理網(wǎng)關(guān),由web代理網(wǎng)關(guān)對網(wǎng)站服務(wù)器上的網(wǎng)頁文件進行緩存,用戶端瀏覽器的頁面請求首先到達web代理網(wǎng)關(guān),web代理網(wǎng)關(guān)查詢所述頁面請求對應(yīng)的頁面文件是否存在于緩存中,若緩存中存在所述頁面文件,則直接將所述頁面文件返回給客戶端瀏覽器,若緩存中不存在所述頁面文件,則由web代理網(wǎng)關(guān)從網(wǎng)站服務(wù)器獲取所述頁面文件返回給客戶端,并緩存所述頁面文件,這樣,瀏覽器下一次請求所述頁面文件時,web代理網(wǎng)關(guān)則可以直接將緩存中的頁面文件返回給瀏覽器。
[0034]圖1是根據(jù)本發(fā)明一個實施例的提高網(wǎng)頁顯示速度的系統(tǒng)結(jié)構(gòu)圖。參照圖1,所述系統(tǒng)可以包括用戶終端10、web代理網(wǎng)關(guān)20和網(wǎng)站服務(wù)器30,web代理網(wǎng)關(guān)20位于用戶終端10和網(wǎng)站服務(wù)器30之間,一個web代理網(wǎng)關(guān)20可以連接一個或多個網(wǎng)站服務(wù)器30。
[0035]其中,用戶終端10中安裝有HTTP客戶端。例如瀏覽器11或HTTP應(yīng)用的客戶端,瀏覽器是指可以顯示網(wǎng)頁服務(wù)器或者文件系統(tǒng)的HTML文件內(nèi)容,并讓用戶與這些文件交互的一種軟件,可以是IE、firef0X、Chr0me等瀏覽器。網(wǎng)頁瀏覽器主要通過HTTP協(xié)議與網(wǎng)頁服務(wù)器交互并獲取網(wǎng)絡(luò)資源,這些網(wǎng)絡(luò)資源由統(tǒng)一資源定位符(URL)指定,文件格式由MME在HTTP協(xié)議中指明。用戶終端10可以是有線或無線通信裝置,例如,計算機,移動電話,個人數(shù)字助理(PDA)等。網(wǎng)站服務(wù)器30上存儲有網(wǎng)頁31和其他網(wǎng)絡(luò)資源,例如,頁面腳本文件(如js文件)、樣式表文件(如css文件)、圖片和應(yīng)用等等。
[0036]Web代理網(wǎng)關(guān)20是一種反向代理,http客戶端例如瀏覽器11可以通過web代理網(wǎng)關(guān)20獲取網(wǎng)站服務(wù)器30中的網(wǎng)頁31和其他網(wǎng)絡(luò)資源。具體地,瀏覽器11對網(wǎng)站服務(wù)器30的http請求會首先到達web代理網(wǎng)關(guān)20,web代理網(wǎng)關(guān)20接收到瀏覽器11的http請求后,會從本地緩存或者網(wǎng)站服務(wù)器30中獲取對應(yīng)的網(wǎng)絡(luò)資源后通過http響應(yīng)發(fā)送給瀏覽器11。
[0037]本發(fā)明實施例與現(xiàn)有技術(shù)的一個不同在于,web代理網(wǎng)關(guān)20還能基于用戶的特點、行為以及網(wǎng)頁的特征,做出相應(yīng)的預(yù)加載策略,提前作資源的請求,而不受制于用戶瀏覽頁面順序的限制,從而達到體驗優(yōu)化的目的。
[0038]比如用戶在購物頁面完成商品選擇后,下一個操作很有可能是進入結(jié)帳頁面,當(dāng)分析出頁面之間的關(guān)系后,就可以在購物頁面打開的同時將結(jié)帳頁面引用的一些資源(如圖片、頁面腳本文件)預(yù)先獲取到瀏覽器本地,這樣就會很快打開結(jié)帳頁面。
[0039]以下給出web代理網(wǎng)關(guān)20的具體實現(xiàn)。
[0040]圖2是根據(jù)本發(fā)明一個實施例的提高網(wǎng)頁顯示速度的裝置結(jié)構(gòu)圖,所述裝置設(shè)置在web代理網(wǎng)關(guān)20中。參照圖2,所述裝置可以包括獲取單元21、確定單元22、修改單元23和發(fā)送單元24。
[0041]該裝置的工作原理為:
[0042]獲取單元21接收到客戶端的頁面請求時,獲取所述頁面請求對應(yīng)的頁面文件。
[0043]客戶端的頁面請求(http請求)首先到達web代理網(wǎng)關(guān),獲取單元21查詢所述頁面請求對應(yīng)的頁面文件(html文件)是否存在于緩存中,若緩存中存在所述頁面文件,則從緩存中取出所述頁面文件,若緩存中不存在所述頁面文件,則從網(wǎng)站服務(wù)器獲取所述頁面文件,并緩存所述頁面文件。
[0044]確定單元22根據(jù)客戶端的特征和/或頁面文件的特征,確定需要預(yù)先下載的資源。
[0045]其中,所述客戶端的特征可以包括以下特征中的一個或多個:客戶端訪問歷史信息和客戶端的cookie信息;所述需要預(yù)先下載的資源可以包括以下資源中的一個或多個:用戶從當(dāng)前頁面可能點擊的頁面或者頁面中引用的資源、當(dāng)前頁面異步內(nèi)容和用戶過去點擊過的內(nèi)容。當(dāng)前頁面異步內(nèi)容是指在當(dāng)前頁面中還沒有被展現(xiàn)(如等待用戶下拉)的內(nèi)容;用戶過去點擊過的內(nèi)容從當(dāng)前頁不一定能點擊。客戶端的特征和/或頁面文件的特征可以由web代理網(wǎng)關(guān)收集并存儲,確定單元22可以對這些特征進行分析,得到需要預(yù)先下載的資源。
[0046]例如,確定單元22可以根據(jù)用戶訪問頁面的先后順序,確定當(dāng)前頁面的下一個頁面,將下一個頁面以及下一個頁面引用的資源作為需要預(yù)先下載的資源。
[0047]需要說明的是,根據(jù)上述特征進行分析得到的預(yù)先下載的資源并不一定準(zhǔn)確,也就是說,客戶端預(yù)先下載資源并緩存后,這些資源后續(xù)并不一定能夠用到,這種誤判是可以接受的,只是浪費了客戶端的一些帶寬或計算能力。
[0048]修改單元23在頁面文件中增加預(yù)下載代碼,所述預(yù)下載代碼用于指示客戶端加載所述頁面文件之后,下載并緩存所述需要預(yù)先下載的資源。其中,所述預(yù)下載代碼可以為javascript 代石馬。
[0049]發(fā)送單元24將修改后的頁面文件發(fā)送給客戶端。
[0050]客戶端接收到所述修改后的頁面文件后,對所述頁面文件進行加載,頁面文件中的其他內(nèi)容加載完成后,執(zhí)行所述預(yù)下載代碼。假設(shè)需要預(yù)先下載的資源為當(dāng)前頁面的下一個頁面以及下一個頁面引用的資源,這種情況下,客戶端在打開當(dāng)前頁面的同時,還下載并緩存下一個頁面以及下一個頁面引用的資源,這樣,用戶點擊下一個頁面時,由于相應(yīng)的數(shù)據(jù)都已經(jīng)緩存在本地,不需要從服務(wù)器獲取,從而能夠提高頁面打開的速度。
[0051]圖3是根據(jù)本發(fā)明一個實施例的提高網(wǎng)頁顯示速度的方法流程圖,所述方法應(yīng)用于web代理網(wǎng)關(guān)中(圖3中的各步驟均由web代理網(wǎng)關(guān)執(zhí)行),web代理網(wǎng)關(guān)位于客戶端和網(wǎng)站服務(wù)器之間,一個web代理網(wǎng)關(guān)可以連接一個或多個網(wǎng)站服務(wù)器。
[0052]參照圖3,所述方法可以包括:
[0053]步驟301,接收到客戶端的頁面請求時,獲取所述頁面請求對應(yīng)的頁面文件;
[0054]客戶端的頁面請求(http請求)首先到達web代理網(wǎng)關(guān),web代理網(wǎng)關(guān)查詢所述頁面請求對應(yīng)的頁面文件(html文件)是否存在于緩存中,若緩存中存在所述頁面文件,則從緩存中取出所述頁面文件,若緩存中不存在所述頁面文件,則從網(wǎng)站服務(wù)器獲取所述頁面文件,并緩存所述頁面文件。
[0055]步驟302,根據(jù)客戶端的特征和/或頁面文件的特征,確定需要預(yù)先下載的資源;
[0056]其中,所述客戶端的特征可以包括以下特征中的一個或多個:客戶端訪問歷史信息和客戶端的cookie信息;所述需要預(yù)先下載的資源可以包括以下資源中的一個或多個:用戶從當(dāng)前頁面可能點擊的頁面或者頁面中引用的資源、當(dāng)前頁面異步內(nèi)容和用戶過去點擊過的內(nèi)容。當(dāng)前頁面異步內(nèi)容是指在當(dāng)前頁面中還沒有被展現(xiàn)(如等待用戶下拉)的內(nèi)容;用戶過去點擊過的內(nèi)容從當(dāng)前頁不一定能點擊。客戶端的特征和/或頁面文件的特征可以由web代理網(wǎng)關(guān)收集并存儲,web代理網(wǎng)關(guān)可以對這些特征進行分析,得到需要預(yù)先下載的資源。
[0057]例如,web代理網(wǎng)關(guān)可以根據(jù)用戶訪問頁面的先后順序,確定當(dāng)前頁面的下一個頁面,將下一個頁面以及下一個頁面引用的資源作為需要預(yù)先下載的資源。
[0058]需要說明的是,根據(jù)上述特征進行分析得到的預(yù)先下載的資源并不一定準(zhǔn)確,也就是說,客戶端預(yù)先下載資源并緩存后,這些資源后續(xù)并不一定能夠用到,這種誤判是可以接受的,只是浪費了客戶端的一些帶寬或計算能力。
[0059]步驟303,在頁面文件中增加預(yù)下載代碼,所述預(yù)下載代碼用于指示客戶端加載所述頁面文件之后,下載并緩存所述需要預(yù)先下載的資源;
[0060]其中,所述預(yù)下載代碼可以為javascript代碼。
[0061]步驟304,將修改后的頁面文件發(fā)送給客戶端。
[0062]客戶端接收到所述修改后的頁面文件后,對所述頁面文件進行加載,頁面文件中的其他內(nèi)容加載完成后,執(zhí)行所述預(yù)下載代碼。假設(shè)需要預(yù)先下載的資源為當(dāng)前頁面的下一個頁面以及下一個頁面引用的資源,這種情況下,客戶端在打開當(dāng)前頁面的同時,還下載并緩存下一個頁面以及下一個頁面引用的資源,這樣,用戶點擊下一個頁面時,由于相應(yīng)的數(shù)據(jù)都已經(jīng)緩存在本地,不需要從服務(wù)器獲取,從而能夠提高頁面打開的速度。
[0063]以下給出一個應(yīng)用實例
[0064]1、用戶訪問分析
[0065]Web代理網(wǎng)關(guān)可以獲取到某個用戶對某個網(wǎng)站的所有訪問,從而可以分析出頁面之間訪問的先后順序,如用戶userA訪問一個購物網(wǎng)站www.shop, com,首先他會打開商品頁面,如www.shop, com/item, html,購買完商品之后會打開付款頁面,如www.shop, com/pay.html,這樣就可以統(tǒng)計出頁面pay.html會出現(xiàn)在item, html之后。分析pay.html頁面內(nèi)容,發(fā)現(xiàn)其中引用了一個圖片資源一pay.jpg,如果pay.jpg已經(jīng)在瀏覽器的緩存中了,當(dāng)瀏覽器打開pay.html時就不需要再從源站下載。
[0066]2、頁面預(yù)加載
[0067]在有了前面的統(tǒng)計分析結(jié)果之后,如果另一個用戶userB訪問了商品頁面www.shop, com/item, html,web代理網(wǎng)關(guān)會在此html頁面中插入一段javascript代碼,此段代碼在item, html頁面都加載完成后執(zhí)行,因此不會影響頁面打開速度,代碼主要作用就是將pay.html頁面以及需要的pay.jpg圖片下載并緩存到瀏覽器緩存中(如果緩存中已有則不需要再下載)。當(dāng)userB進行付賬進入pay.html頁面后從瀏覽器緩存中打開pay.jpg圖片,頁面可以很快打開。
[0068]綜上所述,本發(fā)明實施例基于客戶端的特征和/或頁面文件的特征,做出相應(yīng)的預(yù)加載策略,使得客戶端提前作資源的請求,而不受制于用戶瀏覽頁面順序的限制,從而能夠提高網(wǎng)頁顯示速度,增強用戶體驗。而且,本發(fā)明是在web代理網(wǎng)關(guān)中實現(xiàn),不需要對客戶端和服務(wù)器做改動,實現(xiàn)起來簡單方便。
[0069]需要說明的是,在附圖的流程圖示出的步驟可以在諸如設(shè)置有一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。另外,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0070]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
【權(quán)利要求】
1.一種提高網(wǎng)頁顯示速度的方法,應(yīng)用于web代理網(wǎng)關(guān)中,其特征在于,所述方法包括: 接收到客戶端的頁面請求時,獲取所述頁面請求對應(yīng)的頁面文件; 根據(jù)客戶端的特征和/或頁面文件的特征,確定需要預(yù)先下載的資源; 在頁面文件中增加預(yù)下載代碼,所述預(yù)下載代碼用于指示客戶端加載所述頁面文件之后,下載并緩存所述需要預(yù)先下載的資源; 將修改后的頁面文件發(fā)送給客戶端。
2.如權(quán)利要求1所述的方法,其特征在于: 所述客戶端的特征包括以下特征中的一個或多個:客戶端訪問歷史信息和客戶端的cookie 信息; 所述需要預(yù)先下載的資源包括以下資源中的一個或多個:用戶從當(dāng)前頁面可能點擊的頁面或者頁面中引用的資源、當(dāng)前頁面異步內(nèi)容和用戶過去點擊過的內(nèi)容。
3.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)客戶端的特征和/或頁面文件的特征,確定需要預(yù)先下載的資源,包括: 根據(jù)用戶訪問頁面的先后順序,確定當(dāng)前頁面的下一個頁面,將下一個頁面以及下一個頁面引用的資源作為需要預(yù)先下載的資源。
4.如權(quán)利要求1、2或3所述的方法,其特征在于: 所述預(yù)下載代碼為javascript代碼。
5.一種提高網(wǎng)頁顯示速度的裝置,應(yīng)用于web代理網(wǎng)關(guān)中,其特征在于,所述裝置包括: 獲取單元,用于接收到客戶端的頁面請求時,獲取所述頁面請求對應(yīng)的頁面文件; 確定單元,用于根據(jù)客戶端的特征和/或頁面文件的特征,確定需要預(yù)先下載的資源;修改單元,用于在頁面文件中增加預(yù)下載代碼,所述預(yù)下載代碼用于指示客戶端加載所述頁面文件之后,下載并緩存所述需要預(yù)先下載的資源; 發(fā)送單元,用于將修改后的頁面文件發(fā)送給客戶端。
6.如權(quán)利要求5所述的裝置,其特征在于: 所述客戶端的特征包括以下特征中的一個或多個:客戶端訪問歷史信息和客戶端的cookie 信息; 所述需要預(yù)先下載的資源包括以下資源中的一個或多個:用戶從當(dāng)前頁面可能點擊的頁面或者頁面中引用的資源、當(dāng)前頁面異步內(nèi)容和用戶過去點擊過的內(nèi)容。
7.如權(quán)利要求5所述的裝置,其特征在于,所述確定單元進一步用于: 根據(jù)用戶訪問頁面的先后順序,確定當(dāng)前頁面的下一個頁面,將下一個頁面以及下一個頁面引用的資源作為需要預(yù)先下載的資源。
8.如權(quán)利要求5、6或7所述的裝置,其特征在于: 所述預(yù)下載代碼為javascript代碼。
【文檔編號】G06F17/30GK103440276SQ201310343205
【公開日】2013年12月11日 申請日期:2013年8月8日 優(yōu)先權(quán)日:2013年8月8日
【發(fā)明者】托尼·李, 陳逸, 白宇 申請人:星云融創(chuàng)(北京)信息技術(shù)有限公司