本申請涉及通信
技術(shù)領(lǐng)域:
,特別是涉及一種頁面的加載方法、一種頁面的加載裝置和一種頁面的加載系統(tǒng)。
背景技術(shù):
:網(wǎng)絡(luò)科技的迅猛發(fā)展將人們帶入了信息社會,尤其是隨著移動通信技術(shù)的廣泛普及,給人們的生活都產(chǎn)生了深刻的影響。通常,加載頁面的流程是:1.客戶端訪問某個頁面,向服務(wù)端發(fā)起一個頁面的請求。2.服務(wù)端向客戶端返回頁面的HTML(HypertextMarkupLanguage,超文本標(biāo)記語言)文檔;3.客戶端解析HTML文檔中的各種資源;4.客戶端并發(fā)(通常是3個)向服務(wù)器請求頁面需要資源,如JS(JavaScript,腳本語言)數(shù)據(jù)、CSS(CascadingStyleSheets,層疊樣式表單)數(shù)據(jù)、圖片等;5.客戶端執(zhí)行或者渲染獲得的資源。在網(wǎng)絡(luò)傳輸過程中,尤其是無線網(wǎng)絡(luò)環(huán)境比寬帶和Wi-Fi(無線保真)的網(wǎng)絡(luò)環(huán)境要差很多,有很多不確定性,客戶端從發(fā)出一個請求到收到服務(wù)端響應(yīng)的過程中,由于網(wǎng)絡(luò)不穩(wěn)定丟包或者域名解析以及和服務(wù)器握手等其他環(huán)節(jié)占據(jù)了很大一部分時間,導(dǎo)致頁面的加載時間很長。雖然,通過combo技術(shù),可以將請求合并,例如,首頁只引用了home.js,而home.js的運行需要依賴a.js和b.js,客戶端會先發(fā)請求,以請求home.js,seajs則會在home.js運行時將a.js和b.js合并成一個請求,以異步請求的方式將這兩個文件的和內(nèi)容合集得到并運行。一般情況下至少有兩個JS數(shù)據(jù)的請求、兩個CSS數(shù)據(jù)的請求和各種圖片的請求。理想情況下,至少也有一個JS數(shù)據(jù)的請求、一個CSS數(shù)據(jù)的請求、各種圖片的請求,由于combo技術(shù)需要是模塊依賴分析,請求數(shù)量較多, 頁面的加載時間較長。技術(shù)實現(xiàn)要素:鑒于上述問題,提出了本申請實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種頁面的加載方法和相應(yīng)的一種頁面的加載裝置、一種頁面的加載系統(tǒng)。為了解決上述問題,本申請實施例公開了一種頁面的加載方法,包括:接收客戶端發(fā)送的頁面的加載請求,在所述客戶端中緩存有所述頁面的一個或多個第一頁面資源;根據(jù)所述加載請求獲取頁面框架數(shù)據(jù),以及,所述頁面框架數(shù)據(jù)中的一個或多個第二頁面資源;判斷所述一個或多個第二頁面資源與所述一個或多個第一頁面資源是否相同;若是,則在所述頁面框架數(shù)據(jù)中寫入緩存資源標(biāo)簽;若否,則將所述第二頁面資源嵌入所述頁面框架數(shù)據(jù)中;以及將所述頁面框架數(shù)據(jù)返回所述客戶端,所述客戶端用于對所述頁面框架數(shù)據(jù)進(jìn)行渲染。優(yōu)選地,所述加載請求中包括一個或多個第一頁面資源的緩存信息,各個緩存信息中包括第一文件標(biāo)識和第一內(nèi)容標(biāo)識;所述判斷所述一個或多個第二頁面資源與所述一個或多個第一頁面資源是否相同的步驟包括:計算所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識;當(dāng)查找到與所述第二文件標(biāo)識相同的第一文件標(biāo)識時,判斷所述第二文件標(biāo)識對應(yīng)的第二內(nèi)容標(biāo)識與所述第一文件標(biāo)識對應(yīng)的第一內(nèi)容標(biāo)識是否相同;若是,則確認(rèn)所述第二頁面資源與所述第一頁面資源相同;以及若否,則確認(rèn)所述第二頁面資源與所述第一頁面資源不相同。優(yōu)選地,所述判斷所述一個或多個第二頁面資源與所述一個或多個第一頁面資源是否相同的步驟還包括:當(dāng)未查找到與所述第二文件標(biāo)識相同的第一文件標(biāo)識時,確認(rèn)所述第二 頁面資源與所述第一頁面資源不相同。優(yōu)選地,所述客戶端通過以下方式對頁面框架數(shù)據(jù)進(jìn)行渲染:根據(jù)所述頁面框架數(shù)據(jù)中的緩存資源標(biāo)簽,提取在本地緩存的第一頁面資源進(jìn)行渲染;以及提取所述頁面框架數(shù)據(jù)中的第二頁面資源進(jìn)行渲染。優(yōu)選地,所述客戶端還用于:將所述頁面框架數(shù)據(jù)中的第二頁面資源寫入緩存;以及在寫入緩存成功時,將所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識存儲在客戶端本地。優(yōu)選地,所述一個或多個第一頁面資源的緩存信息存儲在所述加載請求中的cookie數(shù)據(jù)中;所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識存儲在客戶端本地的cookie數(shù)據(jù)中。優(yōu)選地,所述根據(jù)所述加載請求獲取頁面框架數(shù)據(jù),以及,所述頁面框架數(shù)據(jù)中的一個或多個第二頁面資源的步驟包括:根據(jù)所述加載請求查找頁面框架數(shù)據(jù);從所述頁面框架數(shù)據(jù)中查找需要加載的一個或多個第二頁面資源的信息;向資源服務(wù)器針對所述一個或多個第二頁面資源發(fā)送資源獲取請求;以及接收所述資源服務(wù)器針對所述資源獲取請求返回的一個或多個第二頁面資源。本申請實施例還公開了一種頁面的加載裝置,包括:加載請求接收模塊,用于接收客戶端發(fā)送的頁面的加載請求,在所述客戶端中緩存有所述頁面的一個或多個第一頁面資源;資源獲取模塊,用于根據(jù)所述加載請求獲取頁面框架數(shù)據(jù),以及,所述頁面框架數(shù)據(jù)中的一個或多個第二頁面資源;資源比較模塊,用于判斷所述一個或多個第二頁面資源與所述一個或多個第一頁面資源是否相同;若是,則調(diào)用標(biāo)簽寫入模塊,若否,則調(diào)用資源嵌入模塊;標(biāo)簽寫入模塊,用于在所述頁面框架數(shù)據(jù)中寫入緩存資源標(biāo)簽;資源嵌入模塊,用于將所述第二頁面資源嵌入所述頁面框架數(shù)據(jù)中;以及頁面框架數(shù)據(jù)返回模塊,用于將所述頁面框架數(shù)據(jù)返回所述客戶端,所述客戶端用于對所述頁面框架數(shù)據(jù)進(jìn)行渲染。優(yōu)選地,所述加載請求中包括一個或多個第一頁面資源的緩存信息,各個緩存信息中包括第一文件標(biāo)識和第一內(nèi)容標(biāo)識;所述資源比較模塊包括:計算子模塊,用于計算所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識;內(nèi)容標(biāo)識比較子模塊,用于在查找到與所述第二文件標(biāo)識相同的第一文件標(biāo)識時,判斷所述第二文件標(biāo)識對應(yīng)的第二內(nèi)容標(biāo)識與所述第一文件標(biāo)識對應(yīng)的第一內(nèi)容標(biāo)識是否相同;若是,則調(diào)用第一確認(rèn)子模塊,若否,則調(diào)用第二確認(rèn)子模塊;第一確認(rèn)子模塊,用于確認(rèn)所述第二頁面資源與所述第一頁面資源相同;以及第二確認(rèn)子模塊,用于確認(rèn)所述第二頁面資源與所述第一頁面資源不相同。優(yōu)選地,所述資源比較模塊還包括:第三確認(rèn)子模塊,用于在未查找到與所述第二文件標(biāo)識相同的第一文件標(biāo)識時,確認(rèn)所述第二頁面資源與所述第一頁面資源不相同。優(yōu)選地,所述客戶端通過以下方式對頁面框架數(shù)據(jù)進(jìn)行渲染:根據(jù)所述頁面框架數(shù)據(jù)中的緩存資源標(biāo)簽,提取在本地緩存的第一頁面資源進(jìn)行渲染;以及提取所述頁面框架數(shù)據(jù)中的第二頁面資源進(jìn)行渲染。優(yōu)選地,所述客戶端還用于:將所述頁面框架數(shù)據(jù)中的第二頁面資源寫入緩存;以及在寫入緩存成功時,將所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識存儲在客戶端本地。優(yōu)選地,所述一個或多個第一頁面資源的緩存信息存儲在所述加載請求中的cookie數(shù)據(jù)中;所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識存儲在客戶端本地的cookie數(shù)據(jù)中。優(yōu)選地,所述資源獲取模塊包括:第一查找子模塊,用于根據(jù)所述加載請求查找頁面框架數(shù)據(jù);第二查找子模塊,用于從所述頁面框架數(shù)據(jù)中查找需要加載的一個或多個第二頁面資源的信息;資源請求發(fā)送子模塊,用于向資源服務(wù)器針對所述一個或多個第二頁面資源發(fā)送資源獲取請求;以及資源請求接收子模塊,用于接收所述資源服務(wù)器針對所述資源獲取請求返回的一個或多個第二頁面資源。本申請實施例還公開了一種頁面的加載系統(tǒng),所述系統(tǒng)包括服務(wù)器與客戶端;其中,所述服務(wù)器包括:加載請求接收模塊,用于接收客戶端發(fā)送的頁面的加載請求,在所述客戶端中緩存有所述頁面的一個或多個第一頁面資源;資源獲取模塊,用于根據(jù)所述加載請求獲取頁面框架數(shù)據(jù),以及,所述頁面框架數(shù)據(jù)中的一個或多個第二頁面資源;資源比較模塊,用于判斷所述一個或多個第二頁面資源與所述一個或多個第一頁面資源是否相同;若是,則調(diào)用標(biāo)簽寫入模塊,若否,則調(diào)用資源嵌入模塊;標(biāo)簽寫入模塊,用于在所述頁面框架數(shù)據(jù)中寫入緩存資源標(biāo)簽;資源嵌入模塊,用于將所述第二頁面資源嵌入所述頁面框架數(shù)據(jù)中;以及頁面框架數(shù)據(jù)返回模塊,用于將所述頁面框架數(shù)據(jù)返回所述客戶端;所述客戶端包括:渲染模塊,用于對所述頁面框架數(shù)據(jù)進(jìn)行渲染。本申請實施例包括以下優(yōu)點:本申請實施例對比客戶端中緩存的第一頁面資源與當(dāng)前獲取的第二頁面資源,在不同時將第二頁面資源嵌入頁面框架數(shù)據(jù)中,以讓客戶端基于加載請求獲取相應(yīng)的頁面資源,減少了客戶端的后續(xù)發(fā)送的請求頁面資源的請求數(shù)量,在相同時寫入緩存資源標(biāo)簽,以讓客戶端直接調(diào)用緩存的第一頁面資源,減少了頁面框架數(shù)據(jù)的數(shù)據(jù)量,節(jié)約了帶寬,從而大大加快了頁面的加載速度。附圖說明圖1是本申請的一種頁面的加載方法實施例的步驟流程圖;圖2是本申請的一種頁面的加載裝置實施例的結(jié)構(gòu)框圖;圖3是本申請的一種頁面的加載系統(tǒng)實施例的結(jié)構(gòu)框圖。具體實施方式為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本申請作進(jìn)一步詳細(xì)的說明。參照圖1,示出了本申請的一種頁面的加載方法實施例的步驟流程圖,該方法100具體可以包括如下步驟:步驟101,接收客戶端發(fā)送的頁面的加載請求;需要說明的是,本申請實施例可以應(yīng)用于服務(wù)器中,可以包括獨立的服務(wù)器,也可以是服務(wù)器集群,如分布式系統(tǒng)等,本申請實施例對此不加以限制。該服務(wù)器可以與一個或多個客戶端相連,如瀏覽器、內(nèi)嵌微型瀏覽器的應(yīng)用等等,該客戶端可以部署在移動設(shè)備中,如手機、平板電腦、智能手表等等,當(dāng)然,該客戶端也可以部署在固定設(shè)備中,如個人電腦等,本申請實施例對此不加以限制。在具體實現(xiàn)中,客戶端可以發(fā)出請求,以請求服務(wù)器進(jìn)行相應(yīng)的處理。其中,該請求可以包括頁面的加載請求,具體指客戶端發(fā)出的加載某個頁面的指示,由用戶或者其他應(yīng)用所觸發(fā)。例如,用戶可以通過點擊某鏈接來打開一個頁面,從而觸發(fā)頁面的加載請求,或者,在地址欄輸入網(wǎng)址來打開一個頁面,從而觸發(fā)頁面的加載請求等等。在本申請實施例中,在客戶端中可以緩存有該頁面的一個或多個第一頁面資源,該一個或多個第一頁面資源可以為在先加載該頁面時緩存在客戶端本地的頁面資源。此外,在客戶端中還可以存儲有該一個或多個第一頁面資源的緩存信息,各個緩存信息中可以包括第一文件標(biāo)識和第一內(nèi)容標(biāo)識。其中,文件標(biāo)識(如第一文件標(biāo)識、第二文件標(biāo)識)是指能夠代表一個確定的頁面資源(如第一頁面資源、第二頁面資源)的文件信息,可以是文件的相對路徑或者通過某種算法(如CRC32算法等)計算出來的一個服務(wù)器可以識別的唯一資源的標(biāo)識,例如,對js/a.js通過CRC32算法計算出的編碼值“2614776648”用來表示該文件的第一文件標(biāo)識;內(nèi)容標(biāo)識(如第一內(nèi)容標(biāo)識、第二內(nèi)容標(biāo)識)是指能夠代表一個確定的頁面資源(如第一頁面資源、第二頁面資源)的內(nèi)容信息,可以是通過某種算法(如CRC32算法、MD5算法等)計算獲得的一個標(biāo)識,例如,對文件的內(nèi)容alert(‘helloworld”)通過CRC32算法計算出的編碼值“2595379195”可以用來表示該文件的第一內(nèi)容標(biāo)識。在本申請實施例中,該第一頁面資源的緩存信息可以存儲在該頁面的Cookie數(shù)據(jù)中,直接隨加載請求發(fā)送至服務(wù)器。當(dāng)然,該第一頁面資源的緩存信息也可以存儲在其他可持久存儲的位置 中,如localstorage等,通過其他方式隨載請求發(fā)送至服務(wù)器,本申請實施例對此不加以限制。在實際應(yīng)用中,頁面的加載請求還可以包括請求加載的頁面的標(biāo)識和/或頁面的特征。網(wǎng)頁標(biāo)識可以是能夠代表一個唯一確定的網(wǎng)頁的信息,可以包括統(tǒng)一文件標(biāo)識符(UniformResourceIdentifier,URI),統(tǒng)一文件標(biāo)識符又具體可以包括統(tǒng)一資源定位符(UniformResourceLocator,URL),或者統(tǒng)一資源名稱(UniformResourceName,URN)等等??蛻舳丝梢酝ㄟ^DNS(DomainNameSystem,域名解析系統(tǒng))解析查找該頁面URL中的域名(DomainName)所映射的IP(InternetProtocol,網(wǎng)絡(luò)之間互連的協(xié)議)地址。在獲取IP地址成功之后,客戶端可以向該IP地址所在的服務(wù)器請求連接。在成功連接該IP地址所在的服務(wù)器之后,客戶端可以將請求頭信息通過HTTP(Hypertexttransferprotocol,超文本傳送協(xié)議)協(xié)議向此IP地址所在的服務(wù)器發(fā)起頁面的加載請求。該服務(wù)器接收到該請求之后等待處理,最后向客戶端返回響應(yīng)。步驟102,根據(jù)所述加載請求獲取頁面框架數(shù)據(jù),以及,所述頁面框架數(shù)據(jù)中的一個或多個第二頁面資源;頁面框架數(shù)據(jù)可以是頁面的基本框架,即可以為HTML文檔,包括頁面上一些固定格式的數(shù)據(jù),例如,頁面所屬平臺的LOGO(徽標(biāo)或者商標(biāo))、展示圖片的窗口等等。第二頁面資源可以為該頁面中最新的頁面資源,由服務(wù)器所維護(hù)。頁面資源具體可以為靜態(tài)資源,即頁面當(dāng)中可被客戶端解析用作渲染或者執(zhí)行的文件,例如,JS數(shù)據(jù)、CSS數(shù)據(jù)、圖片等。在本申請的一種優(yōu)選實施例中,步驟102可以包括如下子步驟:子步驟S11,根據(jù)所述加載請求查找頁面框架數(shù)據(jù);子步驟S12,從所述頁面框架數(shù)據(jù)中查找需要加載的一個或多個第二頁面資源的信息;子步驟S13,向資源服務(wù)器針對所述一個或多個第二頁面資源發(fā)送資源獲取請求;以及子步驟S14,接收所述資源服務(wù)器針對所述資源獲取請求返回的一個或多個第二頁面資源。在服務(wù)器集群中,可以由應(yīng)用服務(wù)器接收客戶端的加載請求,并維護(hù)頁面框架數(shù)據(jù),由資源服務(wù)器統(tǒng)一維護(hù)頁面最新的資源(即第二頁面資源)。應(yīng)用服務(wù)器在接收到加載請求時,在本地查找相應(yīng)的頁面框架數(shù)據(jù),解析頁面框架數(shù)據(jù)中需要的資源文件。需要說明的是,網(wǎng)頁框架數(shù)據(jù)可以按照固定的模板語言進(jìn)行編譯,如Velocity、JSP(JavaServerPages)、FreeMaker等等,而模板語言可以有多種,對于不同模板語言,其解析的規(guī)則是不盡相同的。例如,某個頁面框架數(shù)據(jù)為:<html><head>#import("http://static.abc.com/js/a.js")#import("http://static.abc.com/js/b.js")#import("http://static.abc.com/css/c.css")</head></html>其中,#import是一個宏,應(yīng)用服務(wù)器解析這個頁面框架數(shù)據(jù)時,可以通過#import宏知道這個頁面需要用到的頁面資源的信息,如地址。應(yīng)用服務(wù)器可以根據(jù)解析的結(jié)果向資源服務(wù)器請求相關(guān)的頁面資源,如直接加載地址http://static.alibaba.com/js/a.js請求頁面資源a.js。在一個示例中,可以通過遠(yuǎn)程過程調(diào)用協(xié)議(RemoteProcedureCallProtocol,RPC)是一種通過網(wǎng)絡(luò)從遠(yuǎn)程計算機程序上請求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。RPC協(xié)議假定某些傳輸協(xié)議的存在,如TCP(TransmissionControlProtocol,傳輸控制協(xié)議)或UDP(UserDatagramProtocol,用戶數(shù)據(jù)包協(xié)議),為通信程序之間攜帶信息數(shù)據(jù)。在OSI(Open SystemInterconnect,開放系統(tǒng)互聯(lián))網(wǎng)絡(luò)通信模型中,RPC跨越了傳輸層和應(yīng)用層,使得開發(fā)包括網(wǎng)絡(luò)分布式多程序在內(nèi)的應(yīng)用程序更加容易。當(dāng)然,上述獲取方式只是作為示例,在實施本申請實施例時,可以根據(jù)實際情況設(shè)置其他獲取方式,例如,在同一服務(wù)器中同時維護(hù)頁面框架數(shù)據(jù)與頁面資源,直接在本地查找相應(yīng)的頁面框架數(shù)據(jù)與頁面資源,等等,本申請實施例對此不加以限制。步驟103,判斷所述一個或多個第二頁面資源與所述一個或多個第一頁面資源是否相同;若是,則執(zhí)行步驟104,若否,則執(zhí)行步驟105;在具體實現(xiàn)中,服務(wù)器可以判斷服務(wù)器中最新的頁面資源(即第二頁面資源)與客戶端在先緩存的頁面資源(即第一頁面資源)是否相同。在本申請的一種優(yōu)選實施例中,所述加載請求中可以包括一個或多個第一頁面資源的緩存信息,各個緩存信息中可以包括第一文件標(biāo)識和第一內(nèi)容標(biāo)識;則在本申請實施例中,步驟103可以包括如下子步驟:子步驟S21,計算所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識;子步驟S22,當(dāng)查找到與所述第二文件標(biāo)識相同的第一文件標(biāo)識時,判斷所述第二文件標(biāo)識對應(yīng)的第二內(nèi)容標(biāo)識與所述第一文件標(biāo)識對應(yīng)的第一內(nèi)容標(biāo)識是否相同;若是,則執(zhí)行子步驟S23,若否,則執(zhí)行子步驟S24;子步驟S23,確認(rèn)所述第二頁面資源與所述第一頁面資源相同;以及子步驟S24,確認(rèn)所述第二頁面資源與所述第一頁面資源不相同。子步驟S25,當(dāng)未查找到與所述第二文件標(biāo)識相同的第一文件標(biāo)識時,確認(rèn)所述第二頁面資源與所述第一頁面資源不相同。在本申請實施例中,服務(wù)器可以通過預(yù)先設(shè)定的計算方式計算出第二文件標(biāo)識、第二內(nèi)容標(biāo)識,采用第二文件標(biāo)識遍歷第一頁面資源的緩存信息。若未查找到相同的第一文件標(biāo)識,可以表示客戶端本地未緩存有相同的資源文件,確認(rèn)第二頁面資源與第一頁面資源(空的資源文件)不同。若查找到相同的第一文件標(biāo)識,則可以進(jìn)一步判斷第二內(nèi)容標(biāo)識與第一內(nèi)容標(biāo)識是否相同;若相同,則可以表示第二頁面資源與第一頁面資源的內(nèi)容相同,即頁面資源未發(fā)生變化,確認(rèn)第二頁面資源與第一頁面資源相同; 若不相同,則可以表示第二頁面資源與第一頁面資源的內(nèi)容不相同,即頁面資源已發(fā)生變化,確認(rèn)第二頁面資源與第一頁面資源不同。步驟104,在所述頁面框架數(shù)據(jù)中寫入緩存資源標(biāo)簽;若服務(wù)器中最新的頁面資源(即第二頁面資源)與客戶端在先緩存的頁面資源(即第一頁面資源)相同,為了減少數(shù)據(jù)量,服務(wù)器可以不直接返回頁面資源。相應(yīng)地,服務(wù)器可以在頁面框架數(shù)據(jù)中該頁面資源的位置寫入緩存資源標(biāo)簽,表示該位置的頁面資源緩存在客戶端本地。步驟105,將所述第二頁面資源嵌入所述頁面框架數(shù)據(jù)中;以及若服務(wù)器中最新的頁面資源(即第二頁面資源)與客戶端在先緩存的頁面資源(即第一頁面資源)不同,為了保證頁面的準(zhǔn)確,服務(wù)器可以直接將頁面資源嵌入頁面框架數(shù)據(jù)的相應(yīng)位置中,并返回客戶端。例如,某個頁面框架數(shù)據(jù)為:<html><head>#import("http://static.abc.com/js/a.js")#import("http://static.abc.com/js/b.js")#import("http://static.abc.com/css/c.css")</head></html>分別獲取到的第二頁面資源a.js為alert("helloa.js"),b.js為alert("hellob.js"),c.css為body{background-color:black;};則服務(wù)器可以會將這三個頁面資源中的內(nèi)容替換到頁面框架數(shù)據(jù)的宏調(diào)用處,這個嵌入過程類似于一個找到位置并替換的過程,最后得到的頁面框架數(shù)據(jù)如下:在頁面框架數(shù)據(jù)中,每個第二頁面資源的標(biāo)簽中可以寫入一個屬性(如finger)來表示這個頁面資源的信息,該信息分為兩部分,前半部分(如上述示例以@為區(qū)分)是第二文件標(biāo)識,后半部分(即上述示例[]中的信息)是第二內(nèi)容標(biāo)識。步驟106,將所述頁面框架數(shù)據(jù)返回所述客戶端。在本申請實施例中,服務(wù)器可以將寫入緩存資源標(biāo)簽和/或嵌入第二頁面資源的頁面框架數(shù)據(jù)返回客戶端。在具體實現(xiàn)中,客戶端可以用于執(zhí)行如下步驟:步驟107,對所述頁面框架數(shù)據(jù)進(jìn)行渲染。客戶端可以解析頁面框架數(shù)據(jù),即解析HTML文檔,生成樹狀結(jié)構(gòu)的對象,即DOM(DocumentObjectModel,文件對象模型),每個對象是DOM上的一個結(jié)點,而這些對象可以代表文字、圖片等頁面資源,客戶端通過獲取相應(yīng)的頁面資源進(jìn)行渲染并顯示。在本申請的一種優(yōu)選實施例中,步驟107可以包括如下子步驟:子步驟S31,根據(jù)所述頁面框架數(shù)據(jù)中的緩存資源標(biāo)簽,提取在本地緩存的第一頁面資源進(jìn)行渲染;以及子步驟S32,提取所述頁面框架數(shù)據(jù)中的第二頁面資源進(jìn)行渲染。在實際應(yīng)用中,該緩存資源標(biāo)簽可以為JS語句,客戶端在解析到該JS語句時,執(zhí)行該JS語句,從本地的緩存中提取相應(yīng)的第一頁面資源進(jìn)行渲染,在解析到第二頁面資源時,可以直接進(jìn)行渲染。本申請實施例對比客戶端中緩存的第一頁面資源與當(dāng)前獲取的第二頁面資源,在不同時將第二頁面資源嵌入頁面框架數(shù)據(jù)中,以讓客戶端基于加載請求獲取相應(yīng)的頁面資源,減少了客戶端的后續(xù)發(fā)送的請求頁面資源的請求數(shù)量,在相同時寫入緩存資源標(biāo)簽,以讓客戶端直接調(diào)用緩存的第一頁面資源,減少了頁面框架數(shù)據(jù)的數(shù)據(jù)量,節(jié)約了帶寬,從而大大加快了頁面的加載速度,尤其適用于應(yīng)用移動網(wǎng)絡(luò)的設(shè)備。在本申請的一種優(yōu)選實施例中,所述客戶端還用于執(zhí)行如下步驟:步驟108,將所述頁面框架數(shù)據(jù)中的第二頁面資源寫入緩存;步驟109,在寫入緩存成功時,將所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識存儲在客戶端本地。在本申請實施例中,可以在頁面中植入一段JS腳本,用于管理本地的頁面資源的緩存及其狀態(tài),主要包括新增緩存、刪除緩存、更新緩存、存儲緩存的頁面資源的緩存信息(文件標(biāo)識、內(nèi)容標(biāo)識)等等??蛻舳丝梢员闅v頁面框架數(shù)據(jù)中標(biāo)識第二頁面資源的屬性(如finger),將該屬性對應(yīng)的第二頁面資源存儲在客戶端本地。若客戶端未存儲相應(yīng)的第一頁面資源,則存儲第二頁面資源的操作為新增緩存;若客戶端存儲有相應(yīng)的第一頁面資源,則存儲第二頁面資源的操作為更新緩存(刪除第一頁面資源、寫入第二頁面資源)。由于客戶端本地的存儲空間有限,因此,在確保將第二頁面資源寫入緩存后,再存儲將第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識,作為該第二頁面資源的緩存信息,以用于下次該頁面的請求。若該一個或多個第一頁面資源的緩存信息存儲在加載請求中的cookie數(shù)據(jù)中,則第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識可以存儲在客戶端本地的cookie數(shù)據(jù)中。進(jìn)一步而言,可以將第二頁面資源的緩存信息為key、內(nèi)容本身為value存入指定位置(如localstorage)中,將本地所有已寫入指定位置的頁面資源的緩存信息寫入cookie數(shù)據(jù)中,如表1、表2所示。表1、Localstorage中的存儲結(jié)構(gòu)keyvalue/js/a.js@[abc]//a.js\nalert("helloa.js");/js/b.js@[bce]//b.js\nalert("hellob.js");/css/c.js@[cde]/*c.css*/\nbody{\nbackground-color:black;\n}表2、Cookie數(shù)據(jù)中的存儲結(jié)構(gòu)fingers/js/a.js@[abc]~/js/b.js@[bce]~/css/c.js@[cde]需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請實施例并不受所描述的動作順序的限制,因為依據(jù)本申請實施例,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本申請實施例所必須的。參照圖2,示出了本申請的一種頁面的加載裝置實施例的結(jié)構(gòu)框圖,該裝置200具體可以包括如下模塊:加載請求接收模塊201,用于接收客戶端發(fā)送的頁面的加載請求,在所述客戶端中緩存有所述頁面的一個或多個第一頁面資源;資源獲取模塊202,用于根據(jù)所述加載請求獲取頁面框架數(shù)據(jù),以及,所述頁面框架數(shù)據(jù)中的一個或多個第二頁面資源;資源比較模塊203,用于判斷所述一個或多個第二頁面資源與所述一個或多個第一頁面資源是否相同;若是,則調(diào)用標(biāo)簽寫入模塊204,若否,則調(diào)用資源嵌入模塊205;標(biāo)簽寫入模塊204,用于在所述頁面框架數(shù)據(jù)中寫入緩存資源標(biāo)簽;資源嵌入模塊205,用于將所述第二頁面資源嵌入所述頁面框架數(shù)據(jù)中;以及頁面框架數(shù)據(jù)返回模塊206,用于將所述頁面框架數(shù)據(jù)返回所述客戶端,所述客戶端用于對所述頁面框架數(shù)據(jù)進(jìn)行渲染。在本申請的一種優(yōu)選實施例中,所述加載請求中可以包括一個或多個第一頁面資源的緩存信息,各個緩存信息中可以包括第一文件標(biāo)識和第一內(nèi)容標(biāo)識;所述資源比較模塊203可以包括如下子模塊:計算子模塊,用于計算所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識;內(nèi)容標(biāo)識比較子模塊,用于在查找到與所述第二文件標(biāo)識相同的第一文件標(biāo)識時,判斷所述第二文件標(biāo)識對應(yīng)的第二內(nèi)容標(biāo)識與所述第一文件標(biāo)識對應(yīng)的第一內(nèi)容標(biāo)識是否相同;若是,則調(diào)用第一確認(rèn)子模塊,若否,則調(diào)用第二確認(rèn)子模塊;第一確認(rèn)子模塊,用于確認(rèn)所述第二頁面資源與所述第一頁面資源相同;以及第二確認(rèn)子模塊,用于確認(rèn)所述第二頁面資源與所述第一頁面資源不相同。在本申請的一種優(yōu)選實施例中,所述資源比較模塊203還可以包括如下子模塊:第三確認(rèn)子模塊,用于在未查找到與所述第二文件標(biāo)識相同的第一文件標(biāo)識時,確認(rèn)所述第二頁面資源與所述第一頁面資源不相同。在本申請的一種優(yōu)選實施例中,所述客戶端可以通過以下方式對頁面框架數(shù)據(jù)進(jìn)行渲染:根據(jù)所述頁面框架數(shù)據(jù)中的緩存資源標(biāo)簽,提取在本地緩存的第一頁面資源進(jìn)行渲染;以及提取所述頁面框架數(shù)據(jù)中的第二頁面資源進(jìn)行渲染。在本申請的一種優(yōu)選實施例中,所述客戶端還可以用于:將所述頁面框架數(shù)據(jù)中的第二頁面資源寫入緩存;以及在寫入緩存成功時,將所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識存儲在客戶端本地。在具體實現(xiàn)中,所述一個或多個第一頁面資源的緩存信息可以存儲在所述加載請求中的cookie數(shù)據(jù)中;所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識可以存儲在客戶端本地的cookie數(shù)據(jù)中。在本申請的一種優(yōu)選實施例中,所述資源獲取模塊202可以包括如下子模塊:第一查找子模塊,用于根據(jù)所述加載請求查找頁面框架數(shù)據(jù);第二查找子模塊,用于從所述頁面框架數(shù)據(jù)中查找需要加載的一個或多個第二頁面資源的信息;資源請求發(fā)送子模塊,用于向資源服務(wù)器針對所述一個或多個第二頁面資源發(fā)送資源獲取請求;以及資源請求接收子模塊,用于接收所述資源服務(wù)器針對所述資源獲取請求返回的一個或多個第二頁面資源。參照圖3,示出了本申請的一種頁面的加載系統(tǒng)實施例的結(jié)構(gòu)框圖,該系統(tǒng)300可以包括服務(wù)器310與客戶端320;其中,所述服務(wù)器310具體可以包括如下模塊:加載請求接收模塊311,用于接收客戶端發(fā)送的頁面的加載請求,在所述客戶端中緩存有所述頁面的一個或多個第一頁面資源;資源獲取模塊312,用于根據(jù)所述加載請求獲取頁面框架數(shù)據(jù),以及,所述頁面框架數(shù)據(jù)中的一個或多個第二頁面資源;資源比較模塊313,用于判斷所述一個或多個第二頁面資源與所述一個或多個第一頁面資源是否相同;若是,則調(diào)用標(biāo)簽寫入模塊314,若否,則調(diào)用資源嵌入模塊315;標(biāo)簽寫入模塊314,用于在所述頁面框架數(shù)據(jù)中寫入緩存資源標(biāo)簽;資源嵌入模塊315,用于將所述第二頁面資源嵌入所述頁面框架數(shù)據(jù)中;以及頁面框架數(shù)據(jù)返回模塊316,用于將所述頁面框架數(shù)據(jù)返回所述客戶端;所述客戶端320可以包括如下模塊:渲染模塊321,用于對所述頁面框架數(shù)據(jù)進(jìn)行渲染。在本申請的一種優(yōu)選實施例中,所述加載請求中可以包括一個或多個第一頁面資源的緩存信息,各個緩存信息中可以包括第一文件標(biāo)識和第一內(nèi)容標(biāo)識;所述資源比較模塊313可以包括如下子模塊:計算子模塊,用于計算所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識;內(nèi)容標(biāo)識比較子模塊,用于在查找到與所述第二文件標(biāo)識相同的第一文件標(biāo)識時,判斷所述第二文件標(biāo)識對應(yīng)的第二內(nèi)容標(biāo)識與所述第一文件標(biāo)識對應(yīng)的第一內(nèi)容標(biāo)識是否相同;若是,則調(diào)用第一確認(rèn)子模塊,若否,則調(diào)用第二確認(rèn)子模塊;第一確認(rèn)子模塊,用于確認(rèn)所述第二頁面資源與所述第一頁面資源相同;以及第二確認(rèn)子模塊,用于確認(rèn)所述第二頁面資源與所述第一頁面資源不相同。在本申請的一種優(yōu)選實施例中,所述資源比較模塊313還可以包括如下子模塊:第三確認(rèn)子模塊,用于在未查找到與所述第二文件標(biāo)識相同的第一文件標(biāo)識時,確認(rèn)所述第二頁面資源與所述第一頁面資源不相同。在本申請的一種優(yōu)選實施例中,所述渲染模塊321可以包括如下子模塊:第一提取子模塊,用于根據(jù)所述頁面框架數(shù)據(jù)中的緩存資源標(biāo)簽,提取在本地緩存的第一頁面資源進(jìn)行渲染;以及第二提取子模塊,用于提取所述頁面框架數(shù)據(jù)中的第二頁面資源進(jìn)行渲 染。在本申請的一種優(yōu)選實施例中,所述客戶端320還可以包括如下模塊:緩存寫模塊,用于將所述頁面框架數(shù)據(jù)中的第二頁面資源寫入緩存;以及信息存儲模塊,用于在寫入緩存成功時,將所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識存儲在客戶端本地。在具體實現(xiàn)中,所述一個或多個第一頁面資源的緩存信息可以存儲在所述加載請求中的cookie數(shù)據(jù)中;所述第二頁面資源的第二文件標(biāo)識和第二內(nèi)容標(biāo)識可以存儲在客戶端本地的cookie數(shù)據(jù)中。在本申請的一種優(yōu)選實施例中,所述資源獲取模塊312可以包括如下子模塊:第一查找子模塊,用于根據(jù)所述加載請求查找頁面框架數(shù)據(jù);第二查找子模塊,用于從所述頁面框架數(shù)據(jù)中查找需要加載的一個或多個第二頁面資源的信息;資源請求發(fā)送子模塊,用于向資源服務(wù)器針對所述一個或多個第二頁面資源發(fā)送資源獲取請求;以及資源請求接收子模塊,用于接收所述資源服務(wù)器針對所述資源獲取請求返回的一個或多個第二頁面資源。對于裝置、系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。本說明書中的各個實施例均采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請實施例的實施例可提供為方法、裝置、或計算機程序產(chǎn)品。因此,本申請實施例可采用完全硬件實施例、完全 軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。在一個典型的配置中,所述計算機設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flashRAM)。內(nèi)存是計算機可讀介質(zhì)的示例。計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括非持續(xù)性的電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。本申請實施例是參照根據(jù)本申請實施例的方法、終端設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理 終端設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得在計算機或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本申請實施例的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請實施例范圍的所有變更和修改。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。以上對本申請所提供的一種頁面的加載方法、一種頁面的加載裝置和一種頁面的加載系統(tǒng),進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。當(dāng)前第1頁1 2 3