頁面資源的加載方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息技術(shù)領(lǐng)域,特別涉及一種頁面資源的加載方法及裝置。
【背景技術(shù)】
[0002]隨著移動終端設(shè)備的普及,Html5技術(shù)的功能也越來越強(qiáng)大。其中,越來越多的Web應(yīng)用開始使用Html5提供的離線應(yīng)用技術(shù)。通過離線應(yīng)用技術(shù)可以實(shí)現(xiàn)在網(wǎng)絡(luò)斷開的條件下顯示網(wǎng)頁頁面。
[0003]目前,瀏覽器在通過離線應(yīng)用技術(shù)加載頁面時,通常包含頁面解析和manifest(清單)文件解析兩個過程。在進(jìn)行頁面解析的過程中,當(dāng)解析到j(luò)s (Java script,腳本)或者CSS (級聯(lián)樣式表)等資源時,需要向網(wǎng)絡(luò)服務(wù)器發(fā)送資源請求;而manifest文件中也會包含js或者css等資源,因此在進(jìn)行manifest文件解析的過程中,當(dāng)解析到j(luò)s或者css等資源時,需要針對與頁面解析的過程中相同的js或者css等資源,向網(wǎng)絡(luò)服務(wù)器重復(fù)發(fā)送資源請求,從而造成網(wǎng)絡(luò)資源的浪費(fèi)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種頁面資源的加載方法及裝置,可以減少網(wǎng)絡(luò)資源的浪費(fèi)。
[0005]本發(fā)明實(shí)施例采用的技術(shù)方案為:
[0006]一種頁面資源的加載方法,包括:
[0007]啟動頁面解析線程;
[0008]判斷本地離線應(yīng)用緩存中是否緩存有所述頁面中需要加載的資源,所述本地離線應(yīng)用緩存中緩存有通過解析清單manifest文件獲取的資源;
[0009]若所述本地離線應(yīng)用緩存中緩存有所述頁面中需要加載的資源,則從所述本地離線應(yīng)用緩存中讀取所述頁面中需要加載的資源。
[0010]一種頁面資源的加載裝置,包括:
[0011]啟動單元,用于啟動頁面解析線程;
[0012]判斷單元,用于判斷本地離線應(yīng)用緩存中是否緩存有所述頁面中需要加載的資源,所述本地離線應(yīng)用緩存中緩存有通過解析清單manifest文件獲取的資源;
[0013]讀取單元,用于若所述判斷單元判斷所述本地離線應(yīng)用緩存中緩存有所述頁面中需要加載的資源,則從所述本地離線應(yīng)用緩存中讀取所述頁面中需要加載的資源。
[0014]本發(fā)明實(shí)施例提供的頁面資源的加載方法及裝置,首先啟動頁面解析線程,然后判斷本地離線應(yīng)用緩存中是否緩存有所述頁面中需要加載的資源,若所述本地離線應(yīng)用緩存中緩存有所述頁面中需要加載的資源,則從所述本地離線應(yīng)用緩存中讀取所述頁面中需要加載的資源。與目前頁面解析和manifest文件解析的過程相互獨(dú)立相比,本發(fā)明實(shí)施例在啟動頁面解析線程后,通過先將解析manifest文件獲取的資源保存在本地離線應(yīng)用緩存中,然后再從本地離線應(yīng)用緩存中獲取需要加載的資源,從而可以避免針對同一資源重復(fù)向網(wǎng)絡(luò)服務(wù)器發(fā)送資源請求,減少網(wǎng)絡(luò)資源的浪費(fèi)。
【附圖說明】
[0015]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0016]圖1為本發(fā)明實(shí)施例提供的一種頁面資源的加載方法流程圖;
[0017]圖2為本發(fā)明實(shí)施例提供的另一種頁面資源的加載方法流程圖;
[0018]圖3為本發(fā)明實(shí)施例提供的一種頁面資源的加載裝置結(jié)構(gòu)示意圖;
[0019]圖4為本發(fā)明實(shí)施例提供的另一種頁面資源的加載裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0020]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0021]為使本發(fā)明技術(shù)方案的優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和實(shí)施例對本發(fā)明作詳細(xì)說明。
[0022]本發(fā)明實(shí)施例提供一種頁面資源的加載方法,如圖1所示,所述方法包括:
[0023]101、啟動頁面解析線程。
[0024]其中,頁面解析線程用于進(jìn)行頁面自上而下的解析和渲染。
[0025]102、判斷本地離線應(yīng)用緩存中是否緩存有所述頁面中需要加載的資源。
[0026]其中,本地離線應(yīng)用緩存中緩存有通過解析manifest文件獲取的所述頁面中需要加載的資源,所述資源可以為js (Java script,客戶端腳本語言)或者css (級聯(lián)樣式表)等資源??梢钥闯?,本發(fā)明實(shí)施例啟動頁面解析線程后,不立即向網(wǎng)絡(luò)服務(wù)器發(fā)送資源獲取請求,而是先判斷本地離線應(yīng)用緩存中是否緩存有所述頁面中需要加載的資源,從而可以避免針對相同資源,與manifest文件解析中向網(wǎng)絡(luò)服務(wù)器發(fā)送資源請求的過程重復(fù),減少了網(wǎng)絡(luò)資源的浪費(fèi)。
[0027]103、若所述本地離線應(yīng)用緩存中緩存有所述頁面中需要加載的資源,則從所述本地離線應(yīng)用緩存中讀取所述頁面中需要加載的資源。
[0028]進(jìn)一步地,在從所述本地離線應(yīng)用緩存中讀取所述頁面中需要加載的資源并進(jìn)行加載后,若還存在未加載的資源,則此時再向網(wǎng)絡(luò)服務(wù)器發(fā)送未加載的資源的請求,從而可以避免針對相同資源重復(fù)向網(wǎng)絡(luò)服務(wù)器發(fā)送資源請求,減少了網(wǎng)絡(luò)資源的浪費(fèi)。
[0029]本發(fā)明實(shí)施例提供的一種頁面資源的加載方法,首先啟動頁面解析線程,然后判斷本地離線應(yīng)用緩存中是否緩存有所述頁面中需要加載的資源,若所述本地離線應(yīng)用緩存中緩存有所述頁面中需要加載的資源,則從所述本地離線應(yīng)用緩存中讀取所述頁面中需要加載的資源。與目前頁面解析和manifest文件解析的過程相互獨(dú)立相比,本發(fā)明實(shí)施例在啟動頁面解析線程后,通過先將manifest文件解析獲取的資源保存在本地離線應(yīng)用緩存中,然后再從本地離線應(yīng)用緩存中獲取需要加載的資源,從而可以避免針對同一資源重復(fù)向網(wǎng)絡(luò)服務(wù)器發(fā)送資源請求,減少網(wǎng)絡(luò)資源的浪費(fèi)。
[0030]進(jìn)一步地,本發(fā)明實(shí)施例提供另一種頁面資源的加載方法,如圖1所示,所述方法包括:
[0031]201、啟動頁面解析線程。
[0032]其中,頁面解析線程用于進(jìn)行頁面自上而下的解析和渲染。
[0033]202、啟動manifest文件解析線程。
[0034]其中,所述manifest文件中包含有所述頁面中需要加載的資源的標(biāo)識信息。頁面中需要加載的資源的標(biāo)識信息具體可以為js、CSS等資源的標(biāo)識信息。
[0035]203a、向網(wǎng)絡(luò)服務(wù)器發(fā)送資源請求。
[0036]其中,所述資源請求中攜帶有所述標(biāo)識信息。
[0037]204a、接收所述網(wǎng)絡(luò)服務(wù)器反饋的與所述標(biāo)識信息對應(yīng)的資源。
[0038]205a、將與所述標(biāo)識信息對應(yīng)的資源緩存在所述本地離線應(yīng)用緩存中。
[0039]206a、檢測所述網(wǎng)絡(luò)服務(wù)器中保存的與所述標(biāo)識信息對應(yīng)的資源是否存在更新。
[0040]207a、若存在更新,則從所述網(wǎng)絡(luò)服務(wù)器中下載更新后的資源,并更新所述本地離線應(yīng)用緩存中對應(yīng)的資源。
[0041]對于本發(fā)明實(shí)施例,通過在每一次進(jìn)行頁面解析時,首先進(jìn)行manifest文件解析,從而檢測網(wǎng)絡(luò)服務(wù)器中保存的與所述標(biāo)識信息對應(yīng)的資源是否存在更新,可以保證頁面中顯示的資源為最新資源,提升了用戶體驗(yàn)。
[0042]208a、若所述本地離線應(yīng)用緩存中緩存有所述頁面中需要加載的資源,則從所述本地離線應(yīng)用緩存中讀取所述頁面中需要加載的資源。
[0043]進(jìn)一步地,在從所述本地離線應(yīng)用緩存中讀取所述頁面中需要加載的資源并進(jìn)行加載后,若還存在未加載的資源,則此時再向網(wǎng)絡(luò)服務(wù)器發(fā)送未加載的資源的請求,從而可以避免針對相同資源重復(fù)向網(wǎng)絡(luò)服務(wù)器發(fā)送資源請求,減少了網(wǎng)絡(luò)資源的浪費(fèi)。
[0044]與步驟203a并列的步驟203b、檢測所述manifest文件解析線程是否存在異常。
[0045]其中,manifest文件解析線程存在異??梢园?與網(wǎng)絡(luò)服務(wù)器之間的網(wǎng)絡(luò)連接中斷;網(wǎng)絡(luò)服務(wù)器之間的網(wǎng)絡(luò)連接正常,但是存在通信故障等異常問題。
[0046]步驟203b之后還包括204b、若所述manifest文件解析線程存在異常,則從所述網(wǎng)絡(luò)服務(wù)器中下載所述頁面中需要加載的資源。
[0047]對于本發(fā)明實(shí)施例,當(dāng)manifest文件解析線程存在異常時,無法通過解析manifest文件將頁面需要加載的資源預(yù)先保存在本地離線應(yīng)用緩存中,此時,在通過向網(wǎng)絡(luò)服務(wù)器發(fā)起資源請求,從網(wǎng)絡(luò)服務(wù)器獲取需要加載的資源,從而可以保證頁面解析的過程正常進(jìn)行,同時,可以避免針對同一資源,與manifest文件解析過程發(fā)起的網(wǎng)絡(luò)請求產(chǎn)生重復(fù),減少了網(wǎng)絡(luò)資源的浪費(fèi)。
[0048]本發(fā)明實(shí)施例提供的另一種頁面資源的加載方法,首先啟動頁面解析線程,然后判斷本地離線應(yīng)用緩存中是否緩存有所述頁面中需要加載的資源,若所述本地離線應(yīng)用緩存中緩存有所述頁面中需要加載的資源,則從所述本地離線應(yīng)用緩存中讀取所述頁面中需要加載的資源。與目前頁面解析和manifest文件解析的過程相互獨(dú)立相比,本發(fā)明實(shí)施例在啟動頁面解析線程后,通過先將manifest文件解析獲取的資源保存在本地離線應(yīng)用緩存中,然后再從本地離線應(yīng)用緩存中獲取需要加載的資源,從而可以避免針對同一資源重復(fù)向網(wǎng)絡(luò)服務(wù)器發(fā)送資源請求,減少網(wǎng)絡(luò)資源的浪費(fèi)。
[0049]進(jìn)一步地,作為圖1所示方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供一種頁面資源的加載裝置,如圖3所示,所述裝置可以應(yīng)用于瀏覽器中,所述裝置包括:啟動單