信息處理方法、瀏覽器客戶端及終端的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)技術(shù),尤其涉及一種信息處理方法、瀏覽器客戶端及終端。
【背景技術(shù)】
[0002]單頁(yè)面應(yīng)用(SPA,Single Page Applicat1n)為在瀏覽器客戶端中運(yùn)行的應(yīng)用,是終端特別是移動(dòng)終端(如智能手機(jī)、平板電腦)瀏覽網(wǎng)頁(yè)的主流實(shí)現(xiàn)方式,瀏覽器客戶端通過(guò)單頁(yè)面應(yīng)用訪問(wèn)訪問(wèn)網(wǎng)絡(luò)(如視頻站點(diǎn))時(shí),單頁(yè)面應(yīng)用面向?yàn)g覽器客戶端的前端只有一個(gè)地址,將所有的活動(dòng)局限于瀏覽器客戶端的中一個(gè)Web頁(yè)面(以下簡(jiǎn)稱當(dāng)前頁(yè)面),僅在頁(yè)面初始化時(shí)加載相應(yīng)的超文本標(biāo)記語(yǔ)言(HTML,Hyper Text Mark-up Language)、腳本(JavaScript)和層疊式表單(CSS,Cascading style Sheets),一旦頁(yè)面加載完成,瀏覽器客戶端不會(huì)因?yàn)橛脩舻牟僮鞫M(jìn)行頁(yè)面的重新加載或跳轉(zhuǎn),而是利用JavaScript動(dòng)態(tài)變換頁(yè)面中HTML來(lái)實(shí)現(xiàn)頁(yè)面的更新,也就是說(shuō),雖然頁(yè)面(頁(yè)面內(nèi)容)發(fā)生了變換,但由于未進(jìn)行頁(yè)面的重新加載或跳轉(zhuǎn),但瀏覽器客戶端基于頁(yè)面的唯一地址將所有的變換內(nèi)容后的頁(yè)面識(shí)別為同一個(gè)頁(yè)面;
[0003]由于瀏覽器客戶端只需要重繪用戶界面上內(nèi)容變化的部分,而不需要重繪整個(gè)當(dāng)前頁(yè)面;這就避免了頁(yè)面的重新加載(刷新),從而減小了頁(yè)面的響應(yīng)時(shí)間,可以提供較為流暢的用戶體驗(yàn),同時(shí)能夠減小網(wǎng)絡(luò)服務(wù)器的壓力,節(jié)約帶寬;
[0004]目前,由于終端中的瀏覽器客戶端的種類多樣,即使同一瀏覽器客戶端也存在諸多版本,導(dǎo)致瀏覽器客戶端運(yùn)行單頁(yè)面應(yīng)用時(shí),出現(xiàn)以下問(wèn)題:
[0005]I)無(wú)法實(shí)現(xiàn)頁(yè)面瀏覽的后退、前進(jìn)(顯示當(dāng)前歷史頁(yè)面之前的頁(yè)面);
[0006]2)無(wú)法實(shí)現(xiàn)歷史頁(yè)面的現(xiàn)場(chǎng)保護(hù),也即顯示歷史頁(yè)面時(shí)只能從歷史頁(yè)面的起始位置開(kāi)始顯示。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施例提供一種信息處理方法、瀏覽器客戶端及終端,能夠兼容所有類型、版本的瀏覽器客戶端實(shí)現(xiàn)瀏覽頁(yè)面的后退、前進(jìn)功能,并且實(shí)現(xiàn)瀏覽頁(yè)面的現(xiàn)場(chǎng)保護(hù)。
[0008]本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0009]本發(fā)明實(shí)施例提供一種信息處理方法,所述方法包括:
[0010]檢測(cè)瀏覽器客戶端是否支持HTML5,綁定與所得到的檢測(cè)結(jié)果對(duì)應(yīng)的事件;
[0011]監(jiān)聽(tīng)所述綁定的事件中被觸發(fā)的事件,基于監(jiān)聽(tīng)結(jié)果確定針對(duì)當(dāng)前頁(yè)面的導(dǎo)航操作的類型,其中,所述當(dāng)前頁(yè)面為基于加載從網(wǎng)絡(luò)服務(wù)器獲取的頁(yè)面數(shù)據(jù)在所述瀏覽器客戶端呈現(xiàn);
[0012]確定所述導(dǎo)航操作的類型表征在所述瀏覽器客戶端呈現(xiàn)歷史頁(yè)面時(shí),基于所述歷史頁(yè)面的時(shí)間戳,確定狀態(tài)對(duì)象列表中具有所述時(shí)間戳的狀態(tài)對(duì)象,從所確定的狀態(tài)對(duì)象中提取顯示現(xiàn)場(chǎng)數(shù)據(jù);
[0013]獲取所述歷史頁(yè)面對(duì)應(yīng)的頁(yè)面數(shù)據(jù),基于所述頁(yè)面數(shù)據(jù)、以及所述顯示現(xiàn)場(chǎng)數(shù)據(jù)在所述瀏覽器客戶端中恢復(fù)所述歷史頁(yè)面的顯示現(xiàn)場(chǎng)。
[0014]優(yōu)選地,所述檢測(cè)是否支持HTML5,綁定與所得到的檢測(cè)結(jié)果對(duì)應(yīng)的事件,包括:
[0015]所述檢測(cè)結(jié)果表征支持HTML5時(shí),綁定popState事件和hashChange事件;
[0016]所述檢測(cè)結(jié)果表征不支持HTML5時(shí),綁定所述hashChange事件。
[0017]優(yōu)選地,所述監(jiān)聽(tīng)綁定的事件,基于監(jiān)聽(tīng)結(jié)果確定針對(duì)當(dāng)前頁(yè)面的導(dǎo)航操作的類型,包括:
[0018]所述檢測(cè)結(jié)果表征支持HTML5,且被觸發(fā)的popState事件指向的狀態(tài)對(duì)象攜帶Null時(shí),確定所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)新頁(yè)面;
[0019]所述檢測(cè)結(jié)果表征支持HTML5,且被觸發(fā)的popState事件指向的狀態(tài)對(duì)象攜帶非空值時(shí),確定所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)歷史頁(yè)面。
[0020]優(yōu)選地,所述監(jiān)聽(tīng)所述綁定的事件中被觸發(fā)的事件,基于監(jiān)聽(tīng)結(jié)果確定針對(duì)當(dāng)前頁(yè)面的導(dǎo)航操作的類型,包括:
[0021]所述檢測(cè)結(jié)果表征不支持HTML5,且被觸發(fā)的hashChange事件指向的頁(yè)面地址未攜帶時(shí)間戳,或,所述被觸發(fā)的hashChange事件指向的頁(yè)面地址攜帶的時(shí)間戳未與所述狀態(tài)對(duì)象列表中的狀態(tài)對(duì)象具有的時(shí)間戳匹配時(shí),確定所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)新頁(yè)面;
[0022]所述檢測(cè)結(jié)果表征不支持HTML5,且被觸發(fā)的hashChange事件指向的頁(yè)面地址攜帶的時(shí)間戳與所述狀態(tài)對(duì)象列表中的狀態(tài)對(duì)象具有的時(shí)間戳匹配時(shí),確定所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)所述歷史頁(yè)面。
[0023]優(yōu)選地,所述方法還包括:
[0024]所述檢測(cè)結(jié)果表征支持HTML5、且所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)新頁(yè)面時(shí),在所述狀態(tài)對(duì)象列表中插入新的狀態(tài)對(duì)象,所述新的狀態(tài)對(duì)象包括所述當(dāng)前頁(yè)面在所述瀏覽器客戶端中的顯示現(xiàn)場(chǎng)數(shù)據(jù);
[0025]更新頁(yè)面歷史數(shù)據(jù)中對(duì)應(yīng)所述當(dāng)前頁(yè)面的頁(yè)面地址,其中所述當(dāng)前頁(yè)面的更新后的頁(yè)面地址中攜帶所述新的狀態(tài)對(duì)象。
[0026]優(yōu)選地,所述方法還包括:
[0027]所述檢測(cè)結(jié)果表征不支持HTML5、且確定所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)新頁(yè)面時(shí),在狀態(tài)對(duì)象列表中插入新的狀態(tài)對(duì)象,所述新的狀態(tài)對(duì)象包括所述當(dāng)前頁(yè)面在所述瀏覽器客戶端中的顯示現(xiàn)場(chǎng)數(shù)據(jù);
[0028]將所述當(dāng)前頁(yè)面歷史數(shù)據(jù)中對(duì)應(yīng)所述當(dāng)前頁(yè)面的頁(yè)面地址的哈希值與所述時(shí)間戳拼裝得到新的頁(yè)面地址,利用所得到的新的頁(yè)面地址替換所述頁(yè)面歷史數(shù)據(jù)中對(duì)應(yīng)所述當(dāng)前頁(yè)面的頁(yè)面地址。
[0029]本發(fā)明實(shí)施例還提供一種瀏覽器客戶端,所述瀏覽器客戶端包括:
[0030]檢測(cè)單元,用于檢測(cè)瀏覽器客戶端是否支持HTML5,綁定與所得到的檢測(cè)結(jié)果對(duì)應(yīng)的事件;
[0031]第一確定單元,用于監(jiān)聽(tīng)所述綁定的事件中被觸發(fā)的事件,基于監(jiān)聽(tīng)結(jié)果確定針對(duì)當(dāng)前頁(yè)面的導(dǎo)航操作的類型,其中,所述當(dāng)前頁(yè)面為基于加載從網(wǎng)絡(luò)服務(wù)器獲取的頁(yè)面數(shù)據(jù)在所述瀏覽器客戶端呈現(xiàn);
[0032]第二確定單元,用于當(dāng)所述第一確定單元確定所述導(dǎo)航操作的類型表征在所述瀏覽器客戶端呈現(xiàn)歷史頁(yè)面時(shí),基于所述歷史頁(yè)面的時(shí)間戳,確定狀態(tài)對(duì)象列表中具有所述時(shí)間戳的狀態(tài)對(duì)象,從所確定的狀態(tài)對(duì)象中提取顯示現(xiàn)場(chǎng)數(shù)據(jù);
[0033]呈現(xiàn)單元,用于獲取所述歷史頁(yè)面對(duì)應(yīng)的頁(yè)面數(shù)據(jù),基于所述頁(yè)面數(shù)據(jù)、以及所述顯示現(xiàn)場(chǎng)數(shù)據(jù)在所述瀏覽器客戶端中恢復(fù)所述歷史頁(yè)面的顯示現(xiàn)場(chǎng)。
[0034]優(yōu)選地,所述檢測(cè)單元還用于當(dāng)所述檢測(cè)結(jié)果表征支持HTML5時(shí),綁定popState事件和hashChange事件;當(dāng)所述檢測(cè)結(jié)果表征不支持HTML5時(shí),綁定所述hashChange事件。
[0035]優(yōu)選地,所述第一確定單元,用于當(dāng)所述檢測(cè)結(jié)果表征支持HTML5,且被觸發(fā)的popState事件指向的狀態(tài)對(duì)象攜帶空值Null時(shí),確定所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)新頁(yè)面;
[0036]當(dāng)所述檢測(cè)結(jié)果表征支持HTML5,且被觸發(fā)的popState事件指向的狀態(tài)對(duì)象攜帶非空值時(shí),確定所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)歷史頁(yè)面。
[0037]優(yōu)選地,所述第一確定單元,還用于當(dāng)所述檢測(cè)結(jié)果表征不支持HTML5,且被觸發(fā)的hashChange事件指向的頁(yè)面地址未攜帶時(shí)間戳,或,所述被觸發(fā)的hashChange事件指向的頁(yè)面地址攜帶的時(shí)間戳未與所述狀態(tài)對(duì)象列表中的狀態(tài)對(duì)象具有的時(shí)間戳匹配時(shí),確定所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)新頁(yè)面;
[0038]當(dāng)所述檢測(cè)結(jié)果表征不支持HTML5,且被觸發(fā)的hashChange事件指向的頁(yè)面地址攜帶的時(shí)間戳與所述狀態(tài)對(duì)象列表中的狀態(tài)對(duì)象具有的時(shí)間戳匹配時(shí),確定所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)所述歷史頁(yè)面。
[0039]優(yōu)選地,所述瀏覽器客戶端還包括:
[0040]第一插入單元,用于所述檢測(cè)結(jié)果表征支持HTML5、且所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)新頁(yè)面時(shí),在所述狀態(tài)對(duì)象列表中插入新的狀態(tài)對(duì)象,所述新的狀態(tài)對(duì)象包括所述當(dāng)前頁(yè)面在所述瀏覽器客戶端中的顯示現(xiàn)場(chǎng)數(shù)據(jù);
[0041]第一更新單元,用于更新頁(yè)面歷史數(shù)據(jù)中對(duì)應(yīng)所述當(dāng)前頁(yè)面的頁(yè)面地址,其中所述當(dāng)前頁(yè)面的更新后的頁(yè)面地址中攜帶所述新的狀態(tài)對(duì)象。
[0042]優(yōu)選地,所述瀏覽器客戶端還包括:
[0043]第二插入單元,用于當(dāng)所述檢測(cè)結(jié)果表征不支持HTML5、且確定所述導(dǎo)航操作的類型表征觸發(fā)在所述瀏覽器客戶端呈現(xiàn)新頁(yè)面時(shí),在狀態(tài)對(duì)象列表中插入新的狀態(tài)對(duì)象,所述新的狀態(tài)對(duì)象包括所述當(dāng)前頁(yè)面在所述瀏覽器客戶端中的顯示現(xiàn)場(chǎng)數(shù)據(jù);
[0044]第二更新單元,用于將所述當(dāng)前頁(yè)面歷史數(shù)據(jù)中對(duì)應(yīng)所述當(dāng)前頁(yè)面的頁(yè)面地址的哈希值與所述時(shí)間戳拼裝得到新的頁(yè)面地址,利用所得到的新的頁(yè)面地址替換所述頁(yè)面歷史數(shù)據(jù)中對(duì)應(yīng)所述當(dāng)前頁(yè)面的頁(yè)面地址。
[0045]本發(fā)明實(shí)施例還提供一種終端,所述終端設(shè)置有上述記載的瀏覽器客戶端。
[0046]本發(fā)明實(shí)施例中,針對(duì)瀏覽器客戶端是否支