用于優(yōu)化網(wǎng)頁預(yù)加載的方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子設(shè)備領(lǐng)域,更具體地,涉及一種用于優(yōu)化網(wǎng)頁預(yù)加載的方法以及實現(xiàn)該方法的設(shè)備。
【背景技術(shù)】
[0002]目前,互聯(lián)網(wǎng)已經(jīng)成為生活中不可缺少的一部分。已經(jīng)出現(xiàn)各種各樣的提供豐富內(nèi)容和功能的網(wǎng)站,能夠滿足人們各種各樣的需求。
[0003]然而,伴隨著網(wǎng)站內(nèi)容和功能的豐富而來的是網(wǎng)頁文件越來越大。原因是網(wǎng)頁文件中包括用于實現(xiàn)各種功能的諸如JavaScript應(yīng)用的應(yīng)用。為了提供更多的功能,JavaScript應(yīng)用的數(shù)量以及代碼量也越來越大。
[0004]因此,這導(dǎo)致的問題是用戶訪問網(wǎng)站時,加載每個網(wǎng)頁所需的時間越來越長,這導(dǎo)致用戶的使用體驗較差。
[0005]為此,期望提供一種用于優(yōu)化網(wǎng)頁預(yù)加載的方法和電子設(shè)備,其能夠有效地降低網(wǎng)頁加載的時間,從而改進用戶的使用體驗。
【發(fā)明內(nèi)容】
[0006]根據(jù)本發(fā)明的一個方面,提供了一種用于優(yōu)化網(wǎng)頁預(yù)加載的方法,應(yīng)用于電子設(shè)備,所述方法包括:分析網(wǎng)頁文件的源代碼以便生成模塊依賴圖,所述模塊依賴圖描述網(wǎng)頁文件中包括的各個模塊之間的加載依賴關(guān)系;根據(jù)所述模塊依賴圖生成加載流程圖,所述加載流程圖指示網(wǎng)頁文件中各個模塊的加載流程;分析所述加載流程圖和所述模塊依賴圖以便確定網(wǎng)頁文件中各個模塊的預(yù)加載序列;以及,根據(jù)已確定的預(yù)加載序列生成預(yù)加載簡檔文件。
[0007]根據(jù)本發(fā)明的另一個方面,提供了一種用于優(yōu)化網(wǎng)頁預(yù)加載的設(shè)備,所述設(shè)備包括:模塊依賴圖生成部件,配置為分析網(wǎng)頁文件的源代碼以便生成模塊依賴圖,所述模塊依賴圖描述網(wǎng)頁文件中包括的各個模塊之間的加載依賴關(guān)系;加載流程圖生成部件,配置為根據(jù)所述模塊依賴圖生成加載流程圖,所述加載流程圖指示網(wǎng)頁文件中各個模塊的加載流程;預(yù)加載序列生成部件,配置為分析所述加載流程圖和所述模塊依賴圖以便確定網(wǎng)頁文件中各個模塊的預(yù)加載序列;以及,預(yù)加載簡檔文件生成部件,配置為根據(jù)已確定的預(yù)加載序列生成預(yù)加載簡檔文件的部件。
[0008]根據(jù)本發(fā)明的另一個方面,提供了一種用于優(yōu)化網(wǎng)頁預(yù)加載的方法,應(yīng)用于服務(wù)器,所述方法包括:接收網(wǎng)頁文件,所述網(wǎng)頁文件中包括一預(yù)加載簡檔文件,其中所述預(yù)加載簡檔文件中定義網(wǎng)頁文件中各個模塊的預(yù)加載序列;響應(yīng)于接收用戶通過一客戶端訪問所述網(wǎng)頁文件對應(yīng)的網(wǎng)頁的請求,確定所述客戶端是否具有所述預(yù)加載簡檔文件;響應(yīng)于所述客戶端具有所述預(yù)加載簡檔文件,根據(jù)客戶端基于所述預(yù)加載簡檔文件進行的預(yù)加載請求,將所述網(wǎng)頁文件中的各個模塊傳輸給所述客戶端。
[0009]根據(jù)本發(fā)明的另一個方面,提供了一種用于優(yōu)化網(wǎng)頁預(yù)加載的設(shè)備,包括:接收部件,配置為接收從外部電子設(shè)備發(fā)布的網(wǎng)頁文件,所述網(wǎng)頁文件中包括一預(yù)加載簡檔文件,其中所述預(yù)加載簡檔文件中定義網(wǎng)頁文件中各個模塊的預(yù)加載序列;確定部件,配置為響應(yīng)于接收用戶通過一客戶端訪問所述網(wǎng)頁文件對應(yīng)的網(wǎng)頁的請求,確定所述客戶端是否具有所述預(yù)加載簡檔文件;傳輸部件,配置為響應(yīng)于所述客戶端具有所述預(yù)加載簡檔文件,根據(jù)客戶端基于所述預(yù)加載簡檔文件進行的預(yù)加載請求,將所述網(wǎng)頁文件中的各個模塊傳輸給所述客戶端。
[0010]根據(jù)本發(fā)明的另一個方面,提供了一種用于優(yōu)化網(wǎng)頁預(yù)加載的方法,所述方法包括:接收用戶訪問特定網(wǎng)頁的請求;根據(jù)所述請求,讀取與該特定網(wǎng)頁對應(yīng)的一預(yù)加載簡檔文件,其中所述預(yù)加載簡檔文件中定義網(wǎng)頁文件中各個模塊的預(yù)加載序列;以及根據(jù)所述預(yù)加載簡檔文件執(zhí)行該特定網(wǎng)頁的預(yù)加載。
[0011]根據(jù)本發(fā)明的另一個方面,提供了一種用于優(yōu)化網(wǎng)頁預(yù)加載的設(shè)備,包括:網(wǎng)頁請求接收部件,配置為接收用戶訪問特定網(wǎng)頁的請求;處理部件,配置為根據(jù)所述請求,讀取與該特定網(wǎng)頁對應(yīng)的一預(yù)加載簡檔文件,其中所述預(yù)加載簡檔文件中定義網(wǎng)頁文件中各個模塊的預(yù)加載序列;以及,預(yù)加載部件,配置為根據(jù)所述預(yù)加載簡檔文件執(zhí)行該特定網(wǎng)頁的預(yù)加載。
[0012]因此,根據(jù)本發(fā)明實施例的用于優(yōu)化網(wǎng)頁預(yù)加載的方法和電子設(shè)備,其能夠有效地降低網(wǎng)頁加載的時間,從而改進用戶的使用體驗。
【附圖說明】
[0013]通過結(jié)合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號通常代表相同部件。
[0014]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框圖;
[0015]圖2示出了根據(jù)本發(fā)明第一實施例的用于優(yōu)化網(wǎng)頁預(yù)加載的系統(tǒng)的結(jié)構(gòu)圖;
[0016]圖3示出了根據(jù)本發(fā)明第二實施例的用于優(yōu)化網(wǎng)頁預(yù)加載的電子設(shè)備的功能配置框圖;
[0017]圖4示出了在根據(jù)第二實施例的電子設(shè)備中實現(xiàn)的用于優(yōu)化網(wǎng)頁預(yù)加載的方法的流程圖;
[0018]圖5示出了基于JavaScript應(yīng)用的頁面元素的示例;
[0019]圖6示出了模塊依賴圖的示例;
[0020]圖7示出了生成加載流程圖的示例;
[0021]圖8示出了預(yù)加載簡檔文件的示例;
[0022]圖9示出了根據(jù)本發(fā)明第三實施例的用于優(yōu)化網(wǎng)頁預(yù)加載的服務(wù)器的功能配置框圖;
[0023]圖10示出了在根據(jù)第三實施例的服務(wù)器中實現(xiàn)的用于優(yōu)化網(wǎng)頁預(yù)加載的方法的流程圖;
[0024]圖11示出了根據(jù)本發(fā)明第四實施例的用于優(yōu)化網(wǎng)頁預(yù)加載的客戶端電子設(shè)備的功能配置框圖;
[0025]圖12示出了在根據(jù)第四實施例的電子設(shè)備中實現(xiàn)的用于優(yōu)化網(wǎng)頁預(yù)加載的方法的流程圖;
[0026]圖13示出了在根據(jù)第四實施例的電子設(shè)備中實現(xiàn)的用于優(yōu)化網(wǎng)頁預(yù)加載的方法的詳細流程圖;以及
[0027]圖14A和14B示出了根據(jù)本發(fā)明第四實施例的用于優(yōu)化網(wǎng)頁預(yù)加載的方法的實現(xiàn)效果圖。
【具體實施方式】
[0028]下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達給本領(lǐng)域的技術(shù)人員。
[0029]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計算機系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使用范圍帶來任何限制。
[0030]如圖1所示,計算機系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0031]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標準體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強型ISA總線、視頻電子標準協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0032]計算機系統(tǒng)/服務(wù)器12典型地包括多種計算機系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計算機系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。
[0033]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質(zhì),例如隨機存取存儲器(RAM) 30和/或高速緩存存儲器32。計算機系統(tǒng)/服務(wù)器12可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。
[0034]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。
[0035]計算機系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14 (例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計算機系統(tǒng)/服務(wù)器12能與一個或多個其它計算設(shè)備進行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進行。并且,計算機系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計算機系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當明白,盡管圖中未示出,可以結(jié)合計算機系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
[0036]現(xiàn)在參看圖2,圖2示出了根據(jù)本發(fā)明第一實施例的用于優(yōu)化網(wǎng)頁預(yù)加載的系統(tǒng)100的結(jié)構(gòu)圖。
[0037]如圖2所示,根據(jù)本發(fā)明第一實施例的系統(tǒng)100包括三個部分:第一部分101是構(gòu)建(build)并發(fā)布網(wǎng)頁的電子設(shè)備(即,也可以稱為構(gòu)建工具);第二部分102是用于提供網(wǎng)頁給客戶端的服務(wù)器;第三部分103是用戶用來訪問網(wǎng)頁的客戶端電子設(shè)備