本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種網(wǎng)頁加載展示方法以及一種網(wǎng)頁加載展示裝置。
背景技術(shù):
wns(wirelessnetworkservice),又名移動連通服務(wù),是空間移動應(yīng)用的無線接入后臺,提供了接近接入、大數(shù)據(jù)上傳下載的網(wǎng)絡(luò)通道、登錄鑒權(quán)、運營監(jiān)控等基礎(chǔ)服務(wù),讓各款應(yīng)用開發(fā)更加迅速,簡單。是一個可以提供高連通、高可靠、強安全的網(wǎng)絡(luò)連接通道的服務(wù)技術(shù)。
目前的wns在加載展示網(wǎng)頁時,通常是wns與服務(wù)器進行交互拉取直出的網(wǎng)頁數(shù)據(jù)(通常為html數(shù)據(jù))到本地緩存后,瀏覽器直接讀取本地緩存進行渲染網(wǎng)頁。在wns直出html失敗的情況下,就需要采用http等協(xié)議從網(wǎng)絡(luò)中重新獲得網(wǎng)頁數(shù)據(jù)。這種網(wǎng)頁加載顯示方式,不僅容易造成流量的浪費,而且會增加渲染時間,極大地影響網(wǎng)頁的加載顯示速度。
技術(shù)實現(xiàn)要素:
基于此,本發(fā)明實施例的目的在于提供一種網(wǎng)頁加載展示方法以及一種網(wǎng)頁加載展示裝置,其可以有效提高網(wǎng)頁加載顯示速度。
為達(dá)到上述目的,本發(fā)明實施例采用以下技術(shù)方案:
一種網(wǎng)頁加載展示方法,其特征在于,包括步驟:
接收網(wǎng)頁訪問指令,該網(wǎng)頁訪問指令中包括有網(wǎng)頁鏈接地址信息;
判斷網(wǎng)頁鏈接地址信息中是否攜帶有預(yù)設(shè)第一協(xié)議標(biāo)識;
若有,封裝生成第一協(xié)議請求包,采用第一協(xié)議將該第一協(xié)議請求包向服務(wù)器發(fā)送,并在本地文件中查找是否存在與所述網(wǎng)頁鏈接地址信息匹配的緩存文件,若存在,加載所述緩存文件,所述第一協(xié)議請求包包括:第一網(wǎng)頁資源標(biāo)識、網(wǎng)頁鏈接地址信息;
接收服務(wù)器根據(jù)所述第一協(xié)議請求包返回的第一協(xié)議響應(yīng)包,所述第一協(xié)議響應(yīng)包包括:第一協(xié)議返回碼、第二協(xié)議返回碼、緩存能力標(biāo)識;
解析所述第一協(xié)議響應(yīng)包,根據(jù)解析得到的第一協(xié)議返回碼、第二協(xié)議返回碼以及緩存能力標(biāo)識進行網(wǎng)頁頁面處理;
若未攜帶有預(yù)設(shè)第一協(xié)議標(biāo)識,封裝生成第二協(xié)議請求包,采用第二協(xié)議將所述第二協(xié)議請求包向所述服務(wù)器發(fā)送,所述第二協(xié)議請求包包括:第一網(wǎng)頁資源標(biāo)識、網(wǎng)頁鏈接地址信息。
一種網(wǎng)頁加載展示裝置,其特征在于,包括:
指令接收模塊,用于接收網(wǎng)頁訪問指令,該網(wǎng)頁訪問指令中包括有網(wǎng)頁鏈接地址信息;
協(xié)議分析模塊,用于判斷網(wǎng)頁鏈接地址信息中是否攜帶有預(yù)設(shè)第一協(xié)議標(biāo)識;
第一協(xié)議請求模塊,用于在所述協(xié)議分析模塊的分析結(jié)果為是時,封裝生成第一協(xié)議請求包,采用第一協(xié)議將該第一協(xié)議請求包向服務(wù)器發(fā)送,所述第一協(xié)議請求包包括:第一網(wǎng)頁資源標(biāo)識、網(wǎng)頁鏈接地址信息;
緩存加載模塊,用于在所述協(xié)議分析模塊的分析結(jié)果為是時,在本地文件中查找是否存在與所述網(wǎng)頁鏈接地址信息匹配的緩存文件,若存在,加載所述緩存文件;
第一協(xié)議接收模塊,用于接收服務(wù)器根據(jù)所述第一協(xié)議請求包返回的第一協(xié)議響應(yīng)包,所述第一協(xié)議響應(yīng)包包括:第一協(xié)議返回碼、第二協(xié)議返回碼、緩存能力標(biāo)識;
頁面處理模塊,用于解析所述第一協(xié)議響應(yīng)包,根據(jù)解析得到的第一協(xié)議返回碼、第二協(xié)議返回碼以及緩存能力標(biāo)識進行網(wǎng)頁頁面處理;
第二協(xié)議請求模塊,用于在所述協(xié)議分析模塊的分析結(jié)果為否時,封裝生成第二協(xié)議請求包,采用第二協(xié)議將所述第二協(xié)議請求包向所述服務(wù)器發(fā)送,所述第二協(xié)議請求包包括:第一網(wǎng)頁資源標(biāo)識、網(wǎng)頁鏈接地址信息。
根據(jù)如上所述的本發(fā)明實施例的方案,是預(yù)加載網(wǎng)頁數(shù)據(jù)到本地,在接收到網(wǎng)頁訪問指令時,在網(wǎng)頁鏈接地址信息中攜帶有預(yù)設(shè)第一協(xié)議標(biāo)識的情況下, 在向服務(wù)器發(fā)送第一協(xié)議請求包的同時,加載本地的緩存文件,在接收到服務(wù)器返回的第一協(xié)議響應(yīng)包之后,再基于第一協(xié)議響應(yīng)包進行網(wǎng)頁頁面處理,從而有效縮短了加載網(wǎng)頁的時間,提高了網(wǎng)頁加載顯示速度,優(yōu)化了網(wǎng)頁加載性能。
附圖說明
圖1是一個實施例中本發(fā)明方案的工作環(huán)境示意圖;
圖2是一個實施例中終端的組成結(jié)構(gòu)示意圖;
圖3是另一個實施例中的網(wǎng)頁加載展示方法的流程示意圖;
圖4是一個具體示例中的網(wǎng)頁加載展示方法的交互流程示意圖;
圖5是一個實施例中的網(wǎng)頁加載展示裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步的詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施方式僅僅用以解釋本發(fā)明,并不限定本發(fā)明的保護范圍。
圖1示出了本發(fā)明一個實施例中的工作環(huán)境示意圖。該工作環(huán)境所在系統(tǒng)包括用戶終端101和服務(wù)器102,用戶終端101、服務(wù)器102通過網(wǎng)絡(luò)連接,這里的網(wǎng)絡(luò)可以是無線網(wǎng)絡(luò),也可以是有線網(wǎng)絡(luò)。用戶終端101通過訪問服務(wù)器102獲得網(wǎng)頁頁面,并將獲得的網(wǎng)頁頁面在用戶終端101進行顯示。本發(fā)明實施例方案涉及的是用戶終端101加載展示網(wǎng)頁頁面的處理。
用戶終端在一個實施例中的結(jié)構(gòu)示意圖如圖2所示。該用戶終端包括通過系統(tǒng)總線連接的處理器、供電模塊、存儲介質(zhì)、內(nèi)存、通信接口、顯示屏幕和輸入設(shè)備。其中,用戶終端的存儲介質(zhì)存儲有操作系統(tǒng)和一種網(wǎng)頁加載展示裝置,該網(wǎng)頁加載展示裝置用于實現(xiàn)一種網(wǎng)頁加載展示的方法。用戶終端的通信接口用于與服務(wù)器連接通信。用戶終端的輸入設(shè)備用以接收用戶的輸入信息,例如本發(fā)明實施例中的網(wǎng)頁訪問指令。輸入設(shè)備基于用戶終端的類型的不同可以有所不同。用戶終端可以是移動終端,比如手機、平板電腦等;也可以是其它具 有上述結(jié)構(gòu)的設(shè)備,比如個人計算機。
結(jié)合圖1、2所示的結(jié)構(gòu)示意圖,以下對網(wǎng)頁加載展示方法及網(wǎng)頁加載展示裝置的各實施例進行說明。需要說明的是,在下述各實施例中,第一、第二的命名僅僅是為了從名稱上加以區(qū)分,并不用以做其他限定。
圖3中示出了一個實施例中的網(wǎng)頁加載展示方法的流程示意圖,如圖3所示,本實施例中的方法包括:
步驟s301:接收網(wǎng)頁訪問指令,該網(wǎng)頁訪問指令中包括有網(wǎng)頁鏈接地址信息;
步驟s302:判斷網(wǎng)頁鏈接地址信息中是否攜帶有預(yù)設(shè)第一協(xié)議標(biāo)識,若有,則進入步驟s303,若沒有,則進入步驟s307;
步驟s303:在本地文件中查找是否存在與所述網(wǎng)頁鏈接地址信息匹配的緩存文件,若存在,加載所述緩存文件;
步驟s304:封裝生成第一協(xié)議請求包,采用第一協(xié)議將該第一協(xié)議請求包向服務(wù)器發(fā)送,所述第一協(xié)議請求包包括:第一網(wǎng)頁資源標(biāo)識、網(wǎng)頁鏈接地址信息;
步驟s305:接收服務(wù)器根據(jù)所述第一協(xié)議請求包返回的第一協(xié)議響應(yīng)包,所述第一協(xié)議響應(yīng)包包括:第一協(xié)議返回碼、第二協(xié)議返回碼、緩存能力標(biāo)識;
步驟s306:解析所述第一協(xié)議響應(yīng)包,根據(jù)解析得到的第一協(xié)議返回碼、第二協(xié)議返回碼以及緩存能力標(biāo)識進行網(wǎng)頁頁面處理;
步驟s307:封裝生成第二協(xié)議請求包,采用第二協(xié)議將所述第二協(xié)議請求包向所述服務(wù)器發(fā)送,所述第二協(xié)議請求包包括:第一網(wǎng)頁資源標(biāo)識、網(wǎng)頁鏈接地址信息。
根據(jù)如上所述的本發(fā)明實施例的方案,是預(yù)加載網(wǎng)頁數(shù)據(jù)到本地,在接收到網(wǎng)頁訪問指令時,在網(wǎng)頁鏈接地址信息中攜帶有預(yù)設(shè)第一協(xié)議標(biāo)識的情況下,在向服務(wù)器發(fā)送第一協(xié)議請求包的同時,加載本地的緩存文件,在接收到服務(wù)器返回的第一協(xié)議響應(yīng)包之后,再基于第一協(xié)議響應(yīng)包進行網(wǎng)頁頁面處理,從而有效縮短了加載網(wǎng)頁的時間,提高了網(wǎng)頁加載顯示速度,優(yōu)化了網(wǎng)頁加載性能。
其中,需要說明的是,上述步驟s303的加載本地緩存文件的過程,與步驟s304中向服務(wù)器發(fā)送第一協(xié)議請求包的過程,可以是同時進行,以盡快加載本地緩存文件,防止白屏?xí)r間,同時也可以盡快從服務(wù)器獲得最新的網(wǎng)頁數(shù)據(jù),在有需要的情況下可以進行后續(xù)的數(shù)據(jù)更新。
另一方面,在上述步驟s303中在本地沒有查找到緩存文件時,還可以是顯示預(yù)設(shè)文件數(shù)據(jù),例如預(yù)設(shè)的圖片,以作為獲取網(wǎng)頁數(shù)據(jù)期間作為過渡使用,避免網(wǎng)頁頁面白屏影響體驗。
在其中一個實施例中,上述在本地文件中查找是否存在與所述網(wǎng)頁鏈接地址信息匹配的緩存文件時,具體可以采用下述方式進行:
采用md5算法對所述網(wǎng)頁鏈接地址信息進行md5運算,獲得md5字符串;
根據(jù)md5字符串在本地文件中查找是否有與所述md5字符串匹配的緩存文件。
從而,通過采用對網(wǎng)頁鏈接地址信息進行md5運算后得到的md5字符串作為緩存文件的識別標(biāo)識,可以進一步提高安全性。
在一個具體示例中,上述第一協(xié)議請求包中還可以包括有分段模式關(guān)閉指令標(biāo)識,通過該分段模式關(guān)閉指令標(biāo)識,指示服務(wù)器不用分段傳輸網(wǎng)頁數(shù)據(jù),而是將需要傳輸?shù)木W(wǎng)頁數(shù)據(jù)一次性傳輸過來,以縮短傳輸時間,進一步提高加載展示網(wǎng)頁的效率。
在一個具體示例中,上述步驟s306中,解析所述第一協(xié)議響應(yīng)包,根據(jù)解析得到的第一協(xié)議返回碼、第二協(xié)議返回碼以及緩存能力標(biāo)識進行網(wǎng)頁頁面處理時,具體可以采用下述方式進行:
解析所述第一協(xié)議響應(yīng)包,獲得第一協(xié)議返回碼;
在所述第一協(xié)議返回碼對應(yīng)的信息為響應(yīng)成功時,解析所述第一協(xié)議響應(yīng)包獲得第二協(xié)議返回碼,判斷所述第二協(xié)議返回碼是否為預(yù)設(shè)返回碼;
若是,不做任何處理;
若不是,解析所述第一協(xié)議響應(yīng)包中的緩存能力標(biāo)識,并根據(jù)所述緩存能力標(biāo)識進行網(wǎng)頁頁面數(shù)據(jù)處理。
從而,在第一協(xié)議響應(yīng)成功的情況下,再解析獲得第二協(xié)議返回碼,并在 第二協(xié)議返回碼不是預(yù)設(shè)返回碼的情況下,再解析獲得緩存能力標(biāo)識,根據(jù)緩存能力標(biāo)識進行對應(yīng)的網(wǎng)頁頁面數(shù)據(jù)處理,其可以有針對性的進行處理,提高網(wǎng)頁頁面處理的效率。
其中,在上述第一協(xié)議返回碼對應(yīng)的信息為響應(yīng)失敗時,上述網(wǎng)頁頁面處理可以包括:封裝生成第二協(xié)議請求包,采用第二協(xié)議將該第二協(xié)議請求包向所述服務(wù)器發(fā)送。
從而,在第一協(xié)議響應(yīng)失敗的情況下,可以直接采用第二協(xié)議向服務(wù)器發(fā)送請求包,而無需解析第一協(xié)議響應(yīng)包中的其他數(shù)據(jù),進一步提高網(wǎng)頁加載的效率。
基于第一協(xié)議請求包中的第一網(wǎng)頁資源標(biāo)識,服務(wù)器可以分析確定出服務(wù)器的網(wǎng)頁數(shù)據(jù)相對于終端緩存的網(wǎng)頁數(shù)據(jù)是否有更新,并進而確定是否需要向終端返回更新后的網(wǎng)頁數(shù)據(jù)。在需要向終端返回更新后的網(wǎng)頁數(shù)據(jù)的情況下,上述第一協(xié)議響應(yīng)包還可以包括:第二網(wǎng)頁資源標(biāo)識、網(wǎng)頁數(shù)據(jù)。
其中,在一個具體實例中,第一協(xié)議響應(yīng)包中的網(wǎng)頁數(shù)據(jù)可以是根據(jù)第一網(wǎng)頁資源標(biāo)識、第二網(wǎng)頁資源標(biāo)識確定的網(wǎng)頁增量數(shù)據(jù)。這里的網(wǎng)頁增量數(shù)據(jù)是指第二網(wǎng)頁資源標(biāo)識對應(yīng)的網(wǎng)頁數(shù)據(jù)相對于第一網(wǎng)頁資源標(biāo)識對應(yīng)的網(wǎng)頁數(shù)據(jù)的差異化輸出,即服務(wù)器只需要將有差異化的相關(guān)數(shù)據(jù)傳輸?shù)浇K端,從而大大減少傳輸?shù)臄?shù)據(jù)量,提高數(shù)據(jù)傳輸效率,且可以進一步提高網(wǎng)頁加載的速度和效率。
上述第一協(xié)議、第二協(xié)議可以結(jié)合實際需要來確定。通常情況下,上述第二協(xié)議可以為普遍使用的http(hypertexttransferprotocol,超文本傳輸協(xié)議)協(xié)議或者h(yuǎn)ttps(hypertexttransferprotocoloversecuresocketlayer,以安全為目標(biāo)的http通道)協(xié)議,而上述第一協(xié)議可以為拉取直出速度較快的協(xié)議,在本發(fā)明實施例中,上述第一協(xié)議可以為移動連通服務(wù)(wns,wirelessnetworkservice)。
以上述第二協(xié)議為http協(xié)議為例,其返回的緩存能力標(biāo)識通常為true、false、store,或者為空,因此,在一個具體示例中,以上述第二協(xié)議為http協(xié)議或者h(yuǎn)ttps協(xié)議為例:
在上述緩存能力標(biāo)識為true時,上述網(wǎng)頁頁面數(shù)據(jù)處理可以包括:用上述第二網(wǎng)頁資源標(biāo)識更新所述第一網(wǎng)頁資源標(biāo)識,用上述第一協(xié)議響應(yīng)包中的網(wǎng)頁數(shù)據(jù)更新緩存,將該網(wǎng)頁數(shù)據(jù)的狀態(tài)設(shè)置為離線狀態(tài),并采用該網(wǎng)頁數(shù)據(jù)刷新網(wǎng)頁頁面;
在上述緩存能力標(biāo)識為store時,上述網(wǎng)頁頁面數(shù)據(jù)處理可以包括:用上述第二網(wǎng)頁資源標(biāo)識更新所述第一網(wǎng)頁資源標(biāo)識,用所述第一協(xié)議響應(yīng)包中的網(wǎng)頁數(shù)據(jù)更新緩存,將該網(wǎng)頁數(shù)據(jù)的狀態(tài)設(shè)置為離線狀態(tài),并檢測是否有網(wǎng)頁內(nèi)容在顯示,若是,不刷新網(wǎng)頁頁面,若否,采用該網(wǎng)頁數(shù)據(jù)刷新網(wǎng)頁頁面;并且,在檢測到網(wǎng)絡(luò)恢復(fù)連接時,還可以額封裝生成第一協(xié)議請求包,采用所述第一協(xié)議將該第一協(xié)議請求包向服務(wù)器發(fā)送;
在上述緩存能力標(biāo)識為false或為空時,上述網(wǎng)頁頁面數(shù)據(jù)處理可以包括:用所述第二網(wǎng)頁資源標(biāo)識更新所述第一網(wǎng)頁資源標(biāo)識,將所述第一協(xié)議響應(yīng)包中的網(wǎng)頁數(shù)據(jù)的狀態(tài)設(shè)置為在線狀態(tài),采用該網(wǎng)頁數(shù)據(jù)刷新網(wǎng)頁頁面,并清除本地緩存。
基于如上所述的本發(fā)明實施例的方法,圖4中使出了一個具體示例中的交互流程示意圖,以下結(jié)合圖4中所示的交互流程示意圖結(jié)合一個具體加載展示網(wǎng)頁的示例進行詳細(xì)說明。在圖4所示的示例中,是以第一協(xié)議為wns、第二協(xié)議為http協(xié)議為例進行說明。
首先,在用戶點擊待加載頁面的相關(guān)鏈接時,終端會接收到一個網(wǎng)頁訪問指令,該網(wǎng)頁訪問指令中包括有網(wǎng)頁鏈接地址信息,該網(wǎng)頁鏈接地址信息通暢為url地址。
隨后終端判斷該網(wǎng)頁鏈接地址信息中是否攜帶有預(yù)設(shè)第一協(xié)議標(biāo)識,在第一協(xié)議為wns時,該預(yù)設(shè)第一協(xié)議標(biāo)識通常為"_proxy=1"或"_proxy=true"參數(shù),即在網(wǎng)頁鏈接地址信息攜帶有"_proxy=1"或"_proxy=true"參數(shù)時,認(rèn)為網(wǎng)頁鏈接地址信息攜帶有wns標(biāo)識,否則認(rèn)為沒有攜帶wns標(biāo)識。
如果沒有攜帶wns標(biāo)識,則終端直接采用http協(xié)議與服務(wù)器進行交互,終端封裝生成第二協(xié)議請求包(在本示例中即為http協(xié)議請求包),并采用第二協(xié)議(在本示例中即為http協(xié)議)將該http請求包發(fā)送向所述服務(wù)器發(fā) 送,其中,該第二協(xié)議請求包包括:第一網(wǎng)頁資源標(biāo)識、網(wǎng)頁鏈接地址信息。后續(xù)的其他處理過程可以與通常的http協(xié)議的交互方式相同。
如果攜帶有wns標(biāo)識,則說明需要采用wns與服務(wù)器進行交互。終端先用md5算法對url做md5算法運算,得出md5字符串,并在本地文件中查找是否存在與該md5字符串匹配的緩存文件。
若本地文件存在緩存文件,則加載該緩存文件。從而,在接收到網(wǎng)頁訪問指令時,可以極快速的將緩存文件進行顯示,極大地縮短網(wǎng)頁加載的時間,提高了網(wǎng)頁加載的顯示速度。
若本地文件中不存在緩存文件(在首次訪問某個網(wǎng)頁鏈接地址的情況下,通常沒有緩存文件),可以是顯示預(yù)設(shè)文件數(shù)據(jù),例如預(yù)設(shè)的圖片(通常為loading圖),以作為獲取網(wǎng)頁數(shù)據(jù)期間作為過渡使用,避免網(wǎng)頁頁面白屏影響體驗。
在上述查找本地緩存文件的同時,封裝生成wns請求包(第一協(xié)議請求包),并采用wms方式將該wns請求包發(fā)送給服務(wù)器。
其中,該wns請求包中,包含的主要參數(shù)可以是封裝在wns請求包的包頭,該主要參數(shù)可以包括有網(wǎng)頁資源標(biāo)識(為與服務(wù)器存儲的網(wǎng)頁資源標(biāo)識相區(qū)分,本發(fā)明實施例中稱之為第一網(wǎng)頁資源標(biāo)識)、網(wǎng)頁鏈接地址信息(url)。該第一網(wǎng)頁資源標(biāo)識可以是在if-none-match信息中進行傳輸,具體可以為etag值,etag值通常由服務(wù)器產(chǎn)生并發(fā)送給終端,是服務(wù)器對網(wǎng)頁文件進行運算后得到的字符串值,服務(wù)器可以通過etag值來確定網(wǎng)頁文件是否有做過修改,進而可以判斷是否需要進行更新、是否需要下發(fā)新的網(wǎng)頁數(shù)據(jù)內(nèi)容等。在首次訪問該網(wǎng)頁鏈接地址信息對應(yīng)的網(wǎng)頁文件的情況下,該etag為空。
如圖4所示,在該具體示例中,該wns請求包中還可以包括有終端身份標(biāo)識(例如cookie,通??梢詭в衭in和skey等數(shù)據(jù),以對終端的用戶身份進行區(qū)分)、分段模式關(guān)閉指令標(biāo)識(例如no-chunked=true,讓服務(wù)器響應(yīng)關(guān)閉chunked模式,將需要傳輸?shù)木W(wǎng)頁數(shù)據(jù)無需分段傳輸,而是一次性傳輸過來)、編碼類型標(biāo)識(例如accept-encoding,用以通知服務(wù)器其所使用的編碼方式,在本發(fā)明示例中可以采用采用gzip壓縮模式)。
服務(wù)器接收到該wns請求包后,采用與編碼類型標(biāo)識對應(yīng)的解碼方式對 wns請求包進行解碼,根據(jù)解碼后得到的第一網(wǎng)頁資源標(biāo)識(wns請求包中的etag值)來確定是否需要更新內(nèi)容。通常情況下,服務(wù)器可以基于自身存儲的網(wǎng)頁資源標(biāo)識(為與終端存儲的第一網(wǎng)頁資源標(biāo)識相區(qū)分,本發(fā)明實施例中稱之為第二網(wǎng)頁資源標(biāo)識),通過比較第一網(wǎng)頁資源標(biāo)識與第二網(wǎng)頁資源標(biāo)識是否一致,若一致,則可以認(rèn)為不需要更新內(nèi)容,若不一致,則認(rèn)為需要進行更新內(nèi)容。具體的確定是否需要更新內(nèi)容的方式可以采用目前已有的方式進行。
基于上述是否需要更新內(nèi)容的判斷結(jié)果,服務(wù)器可以結(jié)合預(yù)設(shè)更新規(guī)則生成wns響應(yīng)包(第一協(xié)議響應(yīng)包),具體的預(yù)設(shè)更新規(guī)則可以結(jié)合具體的也許需求來制定,具體的預(yù)設(shè)更新規(guī)則以及生成wns響應(yīng)包的方式,可以采用目前已有以及以后可能出現(xiàn)的任何方式進行。
在該wns響應(yīng)包中,可以包括有第一協(xié)議返回碼(wns返回碼,即wnscode)、第二協(xié)議返回碼(http返回碼,即httpcode)、緩存能力標(biāo)識(cache-offline)。如圖4所示,在該示例中,該wns響應(yīng)包中還可以編碼類型標(biāo)識(content-encoding,用以通知終端服務(wù)器所使用的編碼方式,在本發(fā)明示例中可以采用采用gzip壓縮模式),在上述判定結(jié)果為更新內(nèi)容的情況下,該wns響應(yīng)包中還可以包括有第二網(wǎng)頁數(shù)據(jù)標(biāo)識、網(wǎng)頁數(shù)據(jù)。
其中,上述生成的wns響應(yīng)包可以是包括wns消息頭(第一協(xié)議消息頭)、wns消息體(第一協(xié)議消息體),其中,wns消息頭可以包括第一協(xié)議返回碼(wnscode),而wns消息體(第一協(xié)議消息體)可以包括http消息頭(第二協(xié)議消息頭)、http消息體(第二協(xié)議消息體),http消息頭可以包括第二協(xié)議返回碼(httpcode)、編碼類型標(biāo)識、緩存能力標(biāo)識(cache-offline),http消息體可以包括網(wǎng)頁數(shù)據(jù)。
終端在接收到wns響應(yīng)包后,首選解析出wns消息頭,獲得wnscode(第一協(xié)議返回碼),并判斷wnscode是否為0。
若wnscode不為0,則說明wns響應(yīng)失敗,則終端采用http協(xié)議與服務(wù)器進行交互,終端封裝生成第二協(xié)議請求包(在本示例中即為http協(xié)議請求包),并采用第二協(xié)議(在本示例中即為http協(xié)議)將該http請求包發(fā)送向所述服務(wù)器發(fā)送,后續(xù)的其他處理過程可以與通常的http協(xié)議的交互方式 相同。
若wnscode為0,則說明wns響應(yīng)成功,則繼續(xù)對wns消息體進行解析,解析出wns消息體中的http消息頭,具體可以是解析出http消息頭中的第二協(xié)議返回碼(httpcode)。
判斷httpcode是否為預(yù)設(shè)范圍返回碼,在本發(fā)明示例中,具體可以是判斷httpcode是否為304,若是,則表示本地文件無需修改,從而可以不做任何處理。
若不是,解析http消息頭中的緩存能力標(biāo)識,并結(jié)合該緩存能力標(biāo)識做不同的處理:
在上述緩存能力標(biāo)識為true時,用上述第二網(wǎng)頁資源標(biāo)識更新所述第一網(wǎng)頁資源標(biāo)識,用上述wns響應(yīng)包中的網(wǎng)頁數(shù)據(jù)更新緩存,將該網(wǎng)頁數(shù)據(jù)的狀態(tài)設(shè)置為離線狀態(tài),并采用該網(wǎng)頁數(shù)據(jù)刷新網(wǎng)頁頁面;
在上述緩存能力標(biāo)識為store時,用上述第二網(wǎng)頁資源標(biāo)識更新所述第一網(wǎng)頁資源標(biāo)識,用上述wns響應(yīng)包中的網(wǎng)頁數(shù)據(jù)更新緩存,將該網(wǎng)頁數(shù)據(jù)的狀態(tài)設(shè)置為離線狀態(tài),并檢測是否有網(wǎng)頁內(nèi)容在顯示,若是,不刷新網(wǎng)頁頁面,若否,采用該網(wǎng)頁數(shù)據(jù)刷新網(wǎng)頁頁面;并且,在檢測到網(wǎng)絡(luò)恢復(fù)連接時,還可以額封裝生成wns請求包,采用wns將該wns請求包向服務(wù)器發(fā)送;
在上述緩存能力標(biāo)識為false或為空時,用所述第二網(wǎng)頁資源標(biāo)識更新所述第一網(wǎng)頁資源標(biāo)識,將上述wns響應(yīng)包中的網(wǎng)頁數(shù)據(jù)的狀態(tài)設(shè)置為在線狀態(tài),采用該網(wǎng)頁數(shù)據(jù)刷新網(wǎng)頁頁面,并清除本地緩存。
其中,上述wns響應(yīng)包中的網(wǎng)頁數(shù)據(jù),可以是根據(jù)第一網(wǎng)頁資源標(biāo)識、第二網(wǎng)頁資源標(biāo)識確定的網(wǎng)頁增量數(shù)據(jù)。這里的網(wǎng)頁增量數(shù)據(jù)是指第二網(wǎng)頁資源標(biāo)識對應(yīng)的網(wǎng)頁數(shù)據(jù)相對于第一網(wǎng)頁資源標(biāo)識對應(yīng)的網(wǎng)頁數(shù)據(jù)的差異化輸出,即服務(wù)器只需要將有差異化的相關(guān)數(shù)據(jù)傳輸?shù)浇K端,從而大大減少傳輸?shù)臄?shù)據(jù)量,提高數(shù)據(jù)傳輸效率,且可以進一步提高網(wǎng)頁加載的速度和效率。
以文件形式存儲的網(wǎng)頁緩存文件中,網(wǎng)頁文件中的js、css可以采用內(nèi)嵌的方式進行緩存,以避免加載緩存文件進行顯示時出現(xiàn)排版錯亂的情況,提高網(wǎng)頁加載展示性能。
基于與上述方法相同的思想,本發(fā)明實施例還提供一種網(wǎng)頁加載展示裝置,圖5中示出了一個具體示例中的裝置結(jié)構(gòu)示意圖。
如圖5所示,本實施例中的網(wǎng)頁加載展示裝置包括:
指令接收模塊501,用于接收網(wǎng)頁訪問指令,該網(wǎng)頁訪問指令中包括有網(wǎng)頁鏈接地址信息;
協(xié)議分析模塊502,用于判斷網(wǎng)頁鏈接地址信息中是否攜帶有預(yù)設(shè)第一協(xié)議標(biāo)識;
第一協(xié)議請求模塊503,用于在所述協(xié)議分析模塊502的分析結(jié)果為是時,封裝生成第一協(xié)議請求包,采用第一協(xié)議將該第一協(xié)議請求包向服務(wù)器發(fā)送,所述第一協(xié)議請求包包括:第一網(wǎng)頁資源標(biāo)識、網(wǎng)頁鏈接地址信息;
緩存加載模塊504,用于在所述協(xié)議分析模塊502的分析結(jié)果為是時,在本地文件中查找是否存在與所述網(wǎng)頁鏈接地址信息匹配的緩存文件,若存在,加載所述緩存文件;
第一協(xié)議接收模塊505,用于接收服務(wù)器根據(jù)所述第一協(xié)議請求包返回的第一協(xié)議響應(yīng)包,所述第一協(xié)議響應(yīng)包包括:第一協(xié)議返回碼、第二協(xié)議返回碼、緩存能力標(biāo)識;
頁面處理模塊506,用于解析所述第一協(xié)議響應(yīng)包,根據(jù)解析得到的第一協(xié)議返回碼、第二協(xié)議返回碼以及緩存能力標(biāo)識進行網(wǎng)頁頁面處理;
第二協(xié)議請求模塊507,用于在所述協(xié)議分析模塊502的分析結(jié)果為否時,封裝生成第二協(xié)議請求包,采用第二協(xié)議將所述第二協(xié)議請求包向所述服務(wù)器發(fā)送,所述第二協(xié)議請求包包括:第一網(wǎng)頁資源標(biāo)識、網(wǎng)頁鏈接地址信息。
根據(jù)如上所述的本發(fā)明實施例的方案,是預(yù)加載網(wǎng)頁數(shù)據(jù)到本地,在接收到網(wǎng)頁訪問指令時,在網(wǎng)頁鏈接地址信息中攜帶有預(yù)設(shè)第一協(xié)議標(biāo)識的情況下,在向服務(wù)器發(fā)送第一協(xié)議請求包的同時,加載本地的緩存文件,在接收到服務(wù)器返回的第一協(xié)議響應(yīng)包之后,再基于第一協(xié)議響應(yīng)包進行網(wǎng)頁頁面處理,從而有效縮短了加載網(wǎng)頁的時間,提高了網(wǎng)頁加載顯示速度,優(yōu)化了網(wǎng)頁加載性能。
其中,需要說明的是,上述步驟s303的加載本地緩存文件的過程,與第一協(xié)議請求模塊503生成并向服務(wù)器發(fā)送第一協(xié)議請求包的過程,可以是同時進行,以盡快加載本地緩存文件,防止白屏?xí)r間,同時也可以盡快從服務(wù)器獲得最新的網(wǎng)頁數(shù)據(jù),在有需要的情況下可以進行后續(xù)的數(shù)據(jù)更新。
其中,需要說明的是,上述緩存加載模塊504加載本地緩存文件的過程,與步驟s304中向服務(wù)器發(fā)送第一協(xié)議請求包的過程,可以是同時進行,以盡快加載本地緩存文件,防止白屏?xí)r間,同時也可以盡快從服務(wù)器獲得最新的網(wǎng)頁數(shù)據(jù),在有需要的情況下可以進行后續(xù)的數(shù)據(jù)更新。
另一方面,上述緩存加載模塊504在本地沒有查找到緩存文件時,還可以是顯示預(yù)設(shè)文件數(shù)據(jù),例如預(yù)設(shè)的圖片,以作為獲取網(wǎng)頁數(shù)據(jù)期間作為過渡使用,避免網(wǎng)頁頁面白屏影響體驗。
在其中一個具體示例中,如圖5所示,上述緩存加載模塊504具體可以包括:
md5運算模塊5041,用于采用md5算法對所述網(wǎng)頁鏈接地址信息進行md5運算,獲得md5字符串;
本地查找模塊5042,用于根據(jù)md5字符串在本地文件中查找是否有與所述md5字符串匹配的緩存文件;
加載模塊5043,用于加載所述本地查找模塊5042查找到的緩存文件。
從而,通過采用對網(wǎng)頁鏈接地址信息進行md5運算后得到的md5字符串作為緩存文件的識別標(biāo)識,可以進一步提高安全性。
如上所述,加載模塊5043還可以是在本地查找模塊5042沒有查找到緩存文件時,顯示預(yù)設(shè)文件數(shù)據(jù),例如預(yù)設(shè)的圖片,以作為獲取網(wǎng)頁數(shù)據(jù)期間作為過渡使用,避免網(wǎng)頁頁面白屏影響體驗。
在一個具體示例中,上述第一協(xié)議請求包中還可以包括有分段模式關(guān)閉指令標(biāo)識,通過該分段模式關(guān)閉指令標(biāo)識,指示服務(wù)器不用分段傳輸網(wǎng)頁數(shù)據(jù),而是將需要傳輸?shù)木W(wǎng)頁數(shù)據(jù)一次性傳輸過來,以縮短傳輸時間,進一步提高加載展示網(wǎng)頁的效率。
在一個具體示例中,如圖5所示,上述頁面處理模塊506具體可以包括:
第一解析模塊5061,用于解析所述第一協(xié)議響應(yīng)包,獲得第一協(xié)議返回碼;
第二解析模塊5062,用于在所述第一協(xié)議返回碼對應(yīng)的信息為響應(yīng)成功時,解析所述第一協(xié)議響應(yīng)包獲得第二協(xié)議返回碼;
第三解析模塊5063,用于在所述第二協(xié)議返回碼為除了預(yù)設(shè)返回碼之外的其他返回碼時,解析所述第一協(xié)議響應(yīng)包中的緩存能力標(biāo)識,
頁面數(shù)據(jù)處理模塊5064,用于根據(jù)所述緩存能力標(biāo)識進行網(wǎng)頁頁面數(shù)據(jù)處理。
從而,在第一協(xié)議響應(yīng)成功的情況下,再解析獲得第二協(xié)議返回碼,并在第二協(xié)議返回碼不是預(yù)設(shè)返回碼的情況下,再解析獲得緩存能力標(biāo)識,根據(jù)緩存能力標(biāo)識進行對應(yīng)的網(wǎng)頁頁面數(shù)據(jù)處理,其可以有針對性的進行處理,提高網(wǎng)頁頁面處理的效率。
其中,第二協(xié)議請求模塊507,還可以是在上述第一協(xié)議返回碼對應(yīng)的信息為響應(yīng)失敗時,封裝生成第二協(xié)議請求包,采用第二協(xié)議將該第二協(xié)議請求包向所述服務(wù)器發(fā)送。
從而,在第一協(xié)議響應(yīng)失敗的情況下,可以直接采用第二協(xié)議向服務(wù)器發(fā)送請求包,而無需解析第一協(xié)議響應(yīng)包中的其他數(shù)據(jù),進一步提高網(wǎng)頁加載的效率。
基于第一協(xié)議請求包中的第一網(wǎng)頁資源標(biāo)識,服務(wù)器可以分析確定出服務(wù)器的網(wǎng)頁數(shù)據(jù)相對于終端緩存的網(wǎng)頁數(shù)據(jù)是否有更新,并進而確定是否需要向終端返回更新后的網(wǎng)頁數(shù)據(jù)。在需要向終端返回更新后的網(wǎng)頁數(shù)據(jù)的情況下,上述第一協(xié)議響應(yīng)包還可以包括:第二網(wǎng)頁資源標(biāo)識、網(wǎng)頁數(shù)據(jù)。
其中,在一個具體實例中,第一協(xié)議響應(yīng)包中的網(wǎng)頁數(shù)據(jù)可以是根據(jù)第一網(wǎng)頁資源標(biāo)識、第二網(wǎng)頁資源標(biāo)識確定的網(wǎng)頁增量數(shù)據(jù)。這里的網(wǎng)頁增量數(shù)據(jù)是指第二網(wǎng)頁資源標(biāo)識對應(yīng)的網(wǎng)頁數(shù)據(jù)相對于第一網(wǎng)頁資源標(biāo)識對應(yīng)的網(wǎng)頁數(shù)據(jù)的差異化輸出,即服務(wù)器只需要將有差異化的相關(guān)數(shù)據(jù)傳輸?shù)浇K端,從而大大減少傳輸?shù)臄?shù)據(jù)量,提高數(shù)據(jù)傳輸效率,且可以進一步提高網(wǎng)頁加載的速度和效率。
上述第一協(xié)議、第二協(xié)議可以結(jié)合實際需要來確定。通常情況下,上述第 二協(xié)議可以為普遍使用的http協(xié)議或者h(yuǎn)ttps協(xié)議,而上述第一協(xié)議可以為拉取直出速度較快的協(xié)議,在本發(fā)明實施例中,上述第一協(xié)議可以為移動連通服務(wù)(wns,wirelessnetworkservice)。
以上述第二協(xié)議為http協(xié)議為例,其返回的緩存能力標(biāo)識通常為true、false、store,或者為空,因此,在一個具體示例中,以上述第二協(xié)議為http協(xié)議或者h(yuǎn)ttps協(xié)議為例:
上述頁面數(shù)據(jù)處理模塊5064,可以是在所述緩存能力標(biāo)識為true時,用所述第二網(wǎng)頁資源標(biāo)識更新所述第一網(wǎng)頁資源標(biāo)識,用所述第一協(xié)議響應(yīng)包中的網(wǎng)頁數(shù)據(jù)更新緩存,將該網(wǎng)頁數(shù)據(jù)的狀態(tài)設(shè)置為離線狀態(tài),并采用該網(wǎng)頁數(shù)據(jù)刷新網(wǎng)頁頁面;
所述頁面數(shù)據(jù)處理模塊5064,可以是在所述緩存能力標(biāo)識為store時,用所述第二網(wǎng)頁資源標(biāo)識更新所述第一網(wǎng)頁資源標(biāo)識,用所述第一協(xié)議響應(yīng)包中的網(wǎng)頁數(shù)據(jù)更新緩存,將該網(wǎng)頁數(shù)據(jù)的狀態(tài)設(shè)置為離線狀態(tài),并檢測是否有網(wǎng)頁內(nèi)容在顯示,若是,不刷新網(wǎng)頁頁面,若否,采用該網(wǎng)頁數(shù)據(jù)刷新網(wǎng)頁頁面;
所述頁面數(shù)據(jù)處理模塊5064,可以是在所述緩存能力標(biāo)識為false或為空時,用所述第二網(wǎng)頁資源標(biāo)識更新所述第一網(wǎng)頁資源標(biāo)識,將所述第一協(xié)議響應(yīng)包中的網(wǎng)頁數(shù)據(jù)的狀態(tài)設(shè)置為在線狀態(tài),采用該網(wǎng)頁數(shù)據(jù)刷新網(wǎng)頁頁面,并清除本地緩存。
其中,在一個具體示例中,上述第一協(xié)議請求模塊503,還可以是在所述緩存能力標(biāo)識為store時,在檢測到網(wǎng)絡(luò)恢復(fù)連接時,封裝生成第一協(xié)議請求包,采用所述第一協(xié)議將該第一協(xié)議請求包向服務(wù)器發(fā)送。
本發(fā)明實施例的網(wǎng)頁加載展示裝置中的其他技術(shù)特征與上述方法中的相同。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)或隨機存儲記憶體(randomaccessmemory,ram)等。
以上所述實施例的各技術(shù)特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。