本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體而言,涉及一種網(wǎng)頁(yè)資源獲取方法和裝置。
背景技術(shù):
用戶使用瀏覽器瀏覽網(wǎng)頁(yè)過(guò)程中,網(wǎng)頁(yè)的打開(kāi)速度很大程度受制于網(wǎng)絡(luò)環(huán)境。資源查找的絕大部分時(shí)間消耗在網(wǎng)絡(luò)傳輸過(guò)程。預(yù)讀技術(shù)是其中一個(gè)較好解決此問(wèn)題的方法?,F(xiàn)有網(wǎng)頁(yè)預(yù)讀的過(guò)程是:當(dāng)用戶使用瀏覽器的過(guò)程中,瀏覽器通過(guò)某種方式或手段判斷用戶接下來(lái)將要訪問(wèn)的網(wǎng)頁(yè),并提前加載判斷需要預(yù)加載的網(wǎng)頁(yè)的相關(guān)資源之后對(duì)所有的預(yù)讀頁(yè)面都進(jìn)行預(yù)排版及預(yù)渲染。隨后在用戶訪問(wèn)其中某個(gè)預(yù)讀網(wǎng)頁(yè)時(shí),則直接切換至已經(jīng)完成排版渲染的頁(yè)面。
所以從現(xiàn)有的預(yù)讀過(guò)程來(lái)看,現(xiàn)有的預(yù)讀方案會(huì)對(duì)預(yù)取的網(wǎng)頁(yè)進(jìn)行預(yù)先的解析、排版及渲染等操作,而這些操作會(huì)占用大量系統(tǒng)資源,導(dǎo)致終端系統(tǒng)性能受到很大影響。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種網(wǎng)頁(yè)資源獲取方法和裝置,能夠降低系統(tǒng)資源的占用,進(jìn)一步提升使用效果和用戶體驗(yàn)。
為了實(shí)現(xiàn)上述目的,本實(shí)施例采用的技術(shù)方案如下:
第一方面,本實(shí)施例提供了一種網(wǎng)頁(yè)資源獲取方法,所述方法包括:
根據(jù)預(yù)加載策略去網(wǎng)站服務(wù)器獲得預(yù)取網(wǎng)頁(yè)資源;
保存所述預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)于預(yù)取緩存中;
接收加載目標(biāo)網(wǎng)頁(yè)資源的加載指令后,根據(jù)所述加載指令,在所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
結(jié)合第一方面,本實(shí)施例提供了第一方面的第一種可能的實(shí)施方式,其中,所述在所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)之前,所述方法還包括:
檢查HTTP緩存內(nèi)是否保存有與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的網(wǎng)頁(yè)數(shù)據(jù),如果沒(méi)有,執(zhí)行所述在所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
結(jié)合第一方面,本實(shí)施例提供了第一方面的第二種可能的實(shí)施方式,其中,所述保存所述預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)于預(yù)取緩存中,包括:
將所述預(yù)取網(wǎng)頁(yè)資源的URL(Uniform Resource Locator,統(tǒng)一資源定位符)與預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)相對(duì)應(yīng)的保存于預(yù)取緩存中。
結(jié)合第一方面的第二種可能的實(shí)施方式,本實(shí)施例提供了第一方面的第三種可能的實(shí)施方式,其中,所述加載指令為加載所述目標(biāo)網(wǎng)頁(yè)資源的URL,
其中,接收加載目標(biāo)網(wǎng)頁(yè)資源的加載指令后,根據(jù)所述加載指令,在所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù),包括:
根據(jù)所述目標(biāo)網(wǎng)頁(yè)資源的URL在所述預(yù)取緩存中查找所述目標(biāo)網(wǎng)頁(yè)資源的原始數(shù)據(jù);
獲取所述查找到的目標(biāo)網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
結(jié)合第一方面的第三種可能的實(shí)施方式,本實(shí)施例提供了第一方面的第四種可能的實(shí)施方式,其中,還包括:
當(dāng)滿足預(yù)設(shè)的清理?xiàng)l件時(shí)或者在預(yù)設(shè)的清理周期內(nèi),根據(jù)所述預(yù)取網(wǎng)頁(yè)資源保存入所述預(yù)取緩存的時(shí)間,以先保存先刪除的方式,依次將所述預(yù)取緩存中的已經(jīng)失效的預(yù)取網(wǎng)頁(yè)資源刪除。
第二方面,本實(shí)施例還提供了一種網(wǎng)頁(yè)資源獲取裝置,所述裝置包括:
網(wǎng)頁(yè)資源預(yù)取單元,用于根據(jù)預(yù)加載策略從網(wǎng)站服務(wù)器獲得預(yù)取網(wǎng)頁(yè)資源;
預(yù)取緩存單元,用于存儲(chǔ)所述預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù);
預(yù)取網(wǎng)頁(yè)資源保存單元,用于將所述預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)保存于預(yù)取緩存中;
目標(biāo)網(wǎng)頁(yè)資源獲取單元,用于接收加載目標(biāo)網(wǎng)頁(yè)資源的加載指令后,根據(jù)所述加載指令,在所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
結(jié)合第二方面,本實(shí)施例提供了第二方面的第一種可能的實(shí)施方式,其中,所述裝置還包括:
HTTP緩存檢查單元,用于在所述目標(biāo)網(wǎng)頁(yè)資源獲取單元執(zhí)行所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)之前,檢查所述HTTP緩存內(nèi)是否保存有與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的網(wǎng)頁(yè)數(shù)據(jù),如果沒(méi)有,跳轉(zhuǎn)到所述目標(biāo)網(wǎng)頁(yè)資源獲取單元。
結(jié)合第二方面,本實(shí)施例提供了第二方面的第二種可能的實(shí)施方式,其中,所述目標(biāo)網(wǎng)頁(yè)資源獲取單元包括:
預(yù)取緩存查找子單元,用于根據(jù)所述目標(biāo)網(wǎng)頁(yè)資源的URL在所述預(yù)取緩存中查找所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的原始數(shù)據(jù);
目標(biāo)網(wǎng)頁(yè)資源獲得子單元,用于獲取所述預(yù)取緩存查找子單元查找到的原始數(shù)據(jù)。
結(jié)合第二方面的第二種可能的實(shí)施方式,本實(shí)施例提供了第二方面的第三種可能的實(shí)施方式,其中,所述裝置還包括:
預(yù)取緩存清理單元,用于當(dāng)滿足預(yù)設(shè)的清理?xiàng)l件時(shí)或者在預(yù)設(shè)的清理周期內(nèi),根據(jù)所述預(yù)取網(wǎng)頁(yè)資源保存入所述預(yù)取緩存的時(shí)間,以先保存先刪除的方式,依次將所述預(yù)取緩存中的已經(jīng)失效的預(yù)取網(wǎng)頁(yè)資源刪除。
本實(shí)施例提供的網(wǎng)頁(yè)資源獲取方法及裝置,在預(yù)讀網(wǎng)頁(yè)時(shí),將成功預(yù)取的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)直接進(jìn)行緩存,而不做任何解析處理。當(dāng)需要加載該網(wǎng)頁(yè)資源時(shí),只需要從讀取本地的預(yù)取緩存中的原始數(shù)據(jù)即可,而無(wú)需再發(fā)起網(wǎng)絡(luò)請(qǐng)求。避免了預(yù)取后就對(duì)預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)進(jìn)行解析、解壓縮、解密、預(yù)排版及預(yù)渲染等操作,系統(tǒng)資源占用相比現(xiàn)有方法大大減低,有效地解除了原有預(yù)加載方案中大量占用系統(tǒng)資源導(dǎo)致預(yù)加載頁(yè)面數(shù)量較少的限制。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說(shuō)明如下。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。通過(guò)附圖所示,本發(fā)明的上述及其它目的、特征和優(yōu)勢(shì)將更加清晰。在全部附圖中相同的附圖標(biāo)記指 示相同的部分。并未刻意按實(shí)際尺寸等比例縮放繪制附圖,重點(diǎn)在于示出本發(fā)明的主旨。
圖1示出了本發(fā)明實(shí)施例提供的一種網(wǎng)頁(yè)資源獲取方法;
圖2示出了本發(fā)明實(shí)施例提供的另一種網(wǎng)頁(yè)資源獲取方法;
圖3示出了本發(fā)明實(shí)施例提供的一種網(wǎng)頁(yè)資源獲取裝置;
圖4示出了本發(fā)明實(shí)施例提供的另一種網(wǎng)頁(yè)資源獲取裝置;
圖5示出了本發(fā)明實(shí)施例提供的另一種網(wǎng)頁(yè)資源獲取裝置。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來(lái)布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本實(shí)施例提供的網(wǎng)頁(yè)資源獲取方法,對(duì)于預(yù)加載的網(wǎng)頁(yè)資源不進(jìn)行解析,直接將網(wǎng)頁(yè)資源的原始數(shù)據(jù)保存在本地的預(yù)取緩存中,待到確認(rèn)需要時(shí)再將原始數(shù)據(jù)從預(yù)取緩存中取出后生成網(wǎng)頁(yè),減少系統(tǒng)資源占用的同時(shí),增大了預(yù)加載的范圍。
參閱圖1,本實(shí)施例提供的一種網(wǎng)頁(yè)資源獲取方法,所述方法包括:
步驟S101,根據(jù)預(yù)加載策略去網(wǎng)站服務(wù)器獲得預(yù)取網(wǎng)頁(yè)資源。
當(dāng)用戶使用瀏覽器的過(guò)程中,瀏覽器可以通過(guò)一些預(yù)加載策略預(yù)測(cè)用戶接下來(lái)將要訪問(wèn)的網(wǎng)頁(yè),并提前查找網(wǎng)頁(yè)的相關(guān)網(wǎng)頁(yè)資源,進(jìn)而去網(wǎng)站服務(wù)器獲得預(yù)取網(wǎng)頁(yè)資源。
步驟S102,保存所述預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)于預(yù)取緩存中。
從網(wǎng)站服務(wù)器獲得預(yù)取網(wǎng)頁(yè)資源后,將取網(wǎng)頁(yè)資源的原始數(shù)據(jù)直接保存與預(yù)取緩存中,不進(jìn)行任何處理,而進(jìn)不用去調(diào)用系統(tǒng)資源。
步驟S103,接收加載目標(biāo)網(wǎng)頁(yè)資源的加載指令后,根據(jù)所述加載指令,在所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
已經(jīng)預(yù)讀的預(yù)取數(shù)據(jù)都是針對(duì)用戶將要執(zhí)行的動(dòng)作的預(yù)測(cè),當(dāng)用戶發(fā)出網(wǎng)頁(yè)瀏覽指令時(shí),瀏覽器會(huì)發(fā)出加載目標(biāo)網(wǎng)頁(yè)資源的加載指令,所述加載指令中包含了用戶需要瀏覽的目標(biāo)網(wǎng)頁(yè)相關(guān)信息。當(dāng)接收到加載指令后,從預(yù)取緩存中找到目標(biāo)網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
在緩存容量有限的情況下,采用本實(shí)施例提供的網(wǎng)頁(yè)資源獲取方法,以原始數(shù)據(jù)的形式保存預(yù)取網(wǎng)頁(yè)資源,占用空間較小,所以能夠預(yù)取更多鏈接對(duì)應(yīng)網(wǎng)頁(yè)資源。而且對(duì)預(yù)取的網(wǎng)頁(yè)資源只進(jìn)行保存,不進(jìn)行處理,占用的系統(tǒng)資源非常少。
本實(shí)施例提供的網(wǎng)頁(yè)資源獲取方法,在預(yù)讀網(wǎng)頁(yè)時(shí),將成功預(yù)取的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)直接進(jìn)行緩存,而不做任何解析處理。當(dāng)需要加載該網(wǎng)頁(yè)資源時(shí),只需要從讀取本地的預(yù)取緩存中的原始數(shù)據(jù)即可,而無(wú)需再發(fā)起網(wǎng)絡(luò)請(qǐng)求。避免了預(yù)取后就對(duì)預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)進(jìn)行解析、解壓縮、解密、預(yù)排版及預(yù)渲染等操作,系統(tǒng)資源占用相比現(xiàn)有方法大大減低,有效地解除了原有預(yù)加載方案中大量占用系統(tǒng)資源導(dǎo)致預(yù)加載頁(yè)面數(shù)量較少的限制。
參閱圖2,本實(shí)施例提供的另一種網(wǎng)頁(yè)資源獲取方法,所述方法包括:
步驟S201,根據(jù)預(yù)加載策略去網(wǎng)站服務(wù)器獲得預(yù)取網(wǎng)頁(yè)資源。
根據(jù)瀏覽器內(nèi)核的預(yù)測(cè)結(jié)果從預(yù)測(cè)出來(lái)的用戶將要訪問(wèn)的網(wǎng)頁(yè)的網(wǎng)站服務(wù)器獲得預(yù)取網(wǎng)頁(yè)資源。
步驟S202,將所述預(yù)取網(wǎng)頁(yè)資源的URL與預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)相對(duì)應(yīng)的保存于預(yù)取緩存中。
為了查找方便,將預(yù)取網(wǎng)頁(yè)資源以鍵值形式保存于所述預(yù)取緩存,其中,所述預(yù)取網(wǎng)頁(yè)資源的URL為鍵,預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)為值。在保存時(shí)也可以將一些與預(yù)取網(wǎng)頁(yè)資源相關(guān)的其他信息一起保存,比如預(yù)取網(wǎng)頁(yè)資源的有效時(shí)間等。
步驟S203,檢查HTTP緩存內(nèi)是否保存有與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的網(wǎng)頁(yè)數(shù)據(jù),如果沒(méi)有,執(zhí)行所述在所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
網(wǎng)頁(yè)資源獲取裝置還包括HTTP緩存,所述HTTP緩存保存有已經(jīng)訪問(wèn)過(guò)的網(wǎng)頁(yè)的網(wǎng)頁(yè)數(shù)據(jù)。當(dāng)瀏覽器發(fā)出加載目標(biāo)網(wǎng)頁(yè)資源的加載指令時(shí),優(yōu)先檢查所述HTTP緩存,如果所述HTTP緩存中有與目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的網(wǎng)頁(yè)數(shù)據(jù)時(shí),直接調(diào)用即可;如果沒(méi)有,再進(jìn)行后續(xù)的步驟。
步驟S204,根據(jù)所述目標(biāo)網(wǎng)頁(yè)資源的URL在所述預(yù)取緩存中查找所述目標(biāo)網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
如果在所述HTTP中沒(méi)有查找到與目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的網(wǎng)頁(yè)數(shù)據(jù),則在所述預(yù)取緩存查找與所述目標(biāo)網(wǎng)頁(yè)資源的原始數(shù)據(jù)。收到的加載指令為加載所述目標(biāo)網(wǎng)頁(yè)資源的URL,而預(yù)取網(wǎng)頁(yè)資源是以 URL為鍵,原始數(shù)據(jù)為值的方式保存在預(yù)取緩存中的,因此只需要查找所述目標(biāo)網(wǎng)頁(yè)資源的URL對(duì)應(yīng)的原始數(shù)據(jù)即可。
步驟S205,獲取所述查找到的目標(biāo)網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
將查找到的目標(biāo)網(wǎng)頁(yè)資源的原始數(shù)據(jù)從預(yù)取緩存中取出。
步驟S206,清理預(yù)取緩存,當(dāng)滿足預(yù)設(shè)的清理?xiàng)l件時(shí)或者在預(yù)設(shè)的清理周期內(nèi),根據(jù)所述預(yù)取網(wǎng)頁(yè)資源保存入所述預(yù)取緩存的時(shí)間,以先保存先刪除的方式,依次將所述預(yù)取緩存中的已經(jīng)失效的預(yù)取網(wǎng)頁(yè)資源刪除。
具體實(shí)踐中,預(yù)取緩存的空間是有限的,需要及時(shí)對(duì)其中保存的預(yù)取網(wǎng)頁(yè)資源進(jìn)行清理,以保證后續(xù)的預(yù)取網(wǎng)頁(yè)資源能夠保存。而且網(wǎng)頁(yè)資源通常都是有實(shí)效性的,在一定時(shí)間過(guò)后,該網(wǎng)頁(yè)資源就會(huì)失效,保存在預(yù)取緩存中也沒(méi)有價(jià)值,例如預(yù)取網(wǎng)頁(yè)資源的有效時(shí)間為20分鐘,當(dāng)該預(yù)取網(wǎng)頁(yè)資源在預(yù)取緩存中已經(jīng)保存了20分鐘,就認(rèn)為該預(yù)取網(wǎng)頁(yè)資源已經(jīng)失效了。根據(jù)預(yù)取網(wǎng)頁(yè)資源存入預(yù)取緩存的時(shí)間以及該網(wǎng)頁(yè)資源的有效時(shí)間,可以判斷保存在預(yù)取緩存中的預(yù)取網(wǎng)頁(yè)資源是否已經(jīng)失效,再根據(jù)系統(tǒng)的配置對(duì)已經(jīng)失效的預(yù)取網(wǎng)頁(yè)資源刪除??梢灶A(yù)先設(shè)定清理?xiàng)l件,例如預(yù)取緩存的占用率達(dá)到一定的數(shù)值或者保存的預(yù)取網(wǎng)頁(yè)資源大小超過(guò)一定的數(shù)值等;也可以按照清理周期進(jìn)行清理,例如一天一次或者一周一次等。進(jìn)行清理時(shí),按照先進(jìn)先出的方式刪除已經(jīng)失效的預(yù)取網(wǎng)頁(yè)資源,即先保存先刪除。
例如,用戶正在通過(guò)瀏覽器瀏覽網(wǎng)頁(yè),通過(guò)分析用戶的行為,設(shè)定的預(yù)加載策略,分析出用戶下一步可能需要獲取的網(wǎng)頁(yè)資源,網(wǎng)頁(yè)資源獲取裝置依次獲得這些網(wǎng)頁(yè)資源的原始數(shù)據(jù)并保存到預(yù)取緩存中。在優(yōu)選的實(shí)施方式中,獲得預(yù)取網(wǎng)頁(yè)資源時(shí),是通過(guò)URL 來(lái)指向網(wǎng)頁(yè)資源位置的,每個(gè)鏈接對(duì)應(yīng)的網(wǎng)頁(yè)資源都有一個(gè)唯一的URL。在用戶點(diǎn)擊了某一個(gè)鏈接,瀏覽器發(fā)出加載該鏈接對(duì)應(yīng)的網(wǎng)頁(yè)資源的加載指令,所述加載指令為加載所述目標(biāo)網(wǎng)頁(yè)資源的URL。如果用戶在之前已經(jīng)瀏覽過(guò)該鏈接對(duì)應(yīng)的網(wǎng)頁(yè),那么就直接可以在HTTP緩存中找到這個(gè)已經(jīng)瀏覽過(guò)的網(wǎng)頁(yè)的網(wǎng)頁(yè)數(shù)據(jù),直接調(diào)用即可。如果沒(méi)有,就需要再?gòu)念A(yù)取緩存中進(jìn)行查找,判斷該鏈接對(duì)應(yīng)的網(wǎng)頁(yè)資源是否已經(jīng)預(yù)取,查找的方式就是對(duì)比已經(jīng)保存在預(yù)取緩存中的預(yù)取網(wǎng)頁(yè)資源的URL與加載指令的目標(biāo)網(wǎng)頁(yè)資源的URL,如果有相同的,說(shuō)明該資源已經(jīng)預(yù)取,直接從本地的預(yù)取緩存中取出預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)即可,如果沒(méi)有,瀏覽器就需要向互聯(lián)網(wǎng)發(fā)出網(wǎng)絡(luò)請(qǐng)求。將預(yù)取網(wǎng)頁(yè)資源取出后,對(duì)原始數(shù)據(jù)進(jìn)行解壓、解密、頁(yè)面解析、頁(yè)面排版、頁(yè)面渲染等操作,得到目標(biāo)網(wǎng)頁(yè)。在使用一段時(shí)間后,需要對(duì)預(yù)取緩存進(jìn)行清理,以先進(jìn)先出的方式,將預(yù)取緩存中已經(jīng)失效的預(yù)取網(wǎng)頁(yè)資源刪除。清理操作可以通過(guò)預(yù)設(shè)周期來(lái)執(zhí)行,也可以通過(guò)預(yù)設(shè)條件來(lái)限定。
本實(shí)施例提供的網(wǎng)頁(yè)資源獲取方法,在預(yù)讀網(wǎng)頁(yè)時(shí),將成功預(yù)取的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)直接進(jìn)行緩存,而不做任何解析處理。當(dāng)需要加載該網(wǎng)頁(yè)資源時(shí),只需要從讀取本地的預(yù)取緩存中的原始數(shù)據(jù)即可,而無(wú)需再發(fā)起網(wǎng)絡(luò)請(qǐng)求。避免了預(yù)取后就對(duì)預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)進(jìn)行解析、解壓縮、解密、預(yù)排版及預(yù)渲染等操作,系統(tǒng)資源占用相比現(xiàn)有方法大大減低,有效地解除了原有預(yù)加載方案中大量占用系統(tǒng)資源導(dǎo)致預(yù)加載頁(yè)面數(shù)量較少的限制。
參閱圖3,本實(shí)施例提供的一種網(wǎng)頁(yè)資源獲取裝置,所述裝置包括:
網(wǎng)頁(yè)資源預(yù)取單元301,用于根據(jù)預(yù)加載策略從網(wǎng)站服務(wù)器獲得預(yù)取網(wǎng)頁(yè)資源。
預(yù)取緩存單元302,用于存儲(chǔ)所述預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
預(yù)取網(wǎng)頁(yè)資源保存單元303,用于保存所述預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)于預(yù)取緩存中。
目標(biāo)網(wǎng)頁(yè)資源獲取單元304,用于接收加載目標(biāo)網(wǎng)頁(yè)資源的加載指令后,根據(jù)所述加載指令,在所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
本實(shí)施例所提供的網(wǎng)頁(yè)資源獲取裝置,在具體實(shí)現(xiàn)中,可以由預(yù)取引擎和瀏覽器內(nèi)核組成,兩者相互獨(dú)立但配合工作,也可以將具有預(yù)取功能的預(yù)取引擎與瀏覽器的內(nèi)核集成在一起構(gòu)成網(wǎng)頁(yè)資源獲取裝置。用戶使用瀏覽器的過(guò)程中,網(wǎng)頁(yè)資源預(yù)取單元301可以通過(guò)預(yù)加載策略預(yù)測(cè)用戶接下來(lái)將要訪問(wèn)的網(wǎng)頁(yè),從網(wǎng)站服務(wù)器獲得預(yù)取網(wǎng)頁(yè)資源。然后將獲得的預(yù)取網(wǎng)頁(yè)資源保存于預(yù)取緩存。網(wǎng)頁(yè)資源獲取裝置接收到的是預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù),需要瀏覽器內(nèi)核對(duì)原始數(shù)據(jù)進(jìn)行處理后,才能得到用戶可以瀏覽的網(wǎng)頁(yè)。預(yù)取網(wǎng)頁(yè)資源保存單元303對(duì)接收到的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)不進(jìn)行處理,而是將其保存于所述預(yù)取緩存。因此不用去調(diào)用系統(tǒng)資源,同時(shí)原始網(wǎng)絡(luò)流數(shù)據(jù)的大小是遠(yuǎn)小于將其處理后得到的網(wǎng)頁(yè)的。
如果用戶執(zhí)行了打開(kāi)目標(biāo)網(wǎng)頁(yè)的操作,瀏覽器會(huì)發(fā)出加載目標(biāo)網(wǎng)頁(yè)資源的加載指令到網(wǎng)頁(yè)資源獲取裝置。目標(biāo)網(wǎng)頁(yè)資源獲取單元304接收到加載指令后,對(duì)預(yù)取緩存進(jìn)行查找,如果在預(yù)取緩存中發(fā)現(xiàn)與加載指令指示的需要加載的目標(biāo)網(wǎng)頁(yè)資源,說(shuō)明對(duì)應(yīng)預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)已經(jīng)保存在預(yù)取緩存了,將該預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)從預(yù)取緩存中取出。由于預(yù)取緩存中的原始數(shù)據(jù)都是本地資 源,瀏覽器就無(wú)需再發(fā)起網(wǎng)絡(luò)請(qǐng)求了。獲得目標(biāo)網(wǎng)頁(yè)資源的原始數(shù)據(jù)后,按照現(xiàn)有的對(duì)原始數(shù)據(jù)的處理方式對(duì)目標(biāo)網(wǎng)頁(yè)資源的原始數(shù)據(jù)進(jìn)行處理后,獲得用戶實(shí)現(xiàn)需要打開(kāi)的網(wǎng)頁(yè)。
緩存的容量是有限的,本實(shí)施例提供的網(wǎng)頁(yè)資源獲取裝置,以原始數(shù)據(jù)的形式保存預(yù)取網(wǎng)頁(yè)資源,占用空間較小,所以能夠預(yù)取更多鏈接對(duì)應(yīng)網(wǎng)頁(yè)資源。而且對(duì)預(yù)取的網(wǎng)頁(yè)資源只進(jìn)行保存,不進(jìn)行處理,占用的系統(tǒng)資源非常少。
本實(shí)施例所提供的網(wǎng)頁(yè)資源獲取裝置,在預(yù)讀網(wǎng)頁(yè)時(shí),將成功預(yù)取的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)直接進(jìn)行緩存,而不做任何解析處理。當(dāng)需要加載該網(wǎng)頁(yè)資源時(shí),只需要從讀取本地的預(yù)取緩存中的原始數(shù)據(jù)即可,而無(wú)需再發(fā)起網(wǎng)絡(luò)請(qǐng)求。避免了預(yù)取后就對(duì)預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)進(jìn)行解析、解壓縮、解密、預(yù)排版及預(yù)渲染等操作,系統(tǒng)資源占用相比現(xiàn)有方法大大減低,有效地解除了原有預(yù)加載方案中大量占用系統(tǒng)資源導(dǎo)致預(yù)加載頁(yè)面數(shù)量較少的限制。
參閱圖4,本實(shí)施例提供的另一種網(wǎng)頁(yè)資源獲取裝置,所述網(wǎng)頁(yè)資源獲取裝置包括用于保存數(shù)據(jù)的預(yù)取緩存,所述裝置包括:
網(wǎng)頁(yè)資源預(yù)取單元401,用于根據(jù)預(yù)加載策略從網(wǎng)站服務(wù)器獲得預(yù)取網(wǎng)頁(yè)資源。
預(yù)取緩存單元402,用于存儲(chǔ)所述預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
預(yù)取網(wǎng)頁(yè)資源保存單元403,用于將所述預(yù)取網(wǎng)頁(yè)資源的URL與預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)相對(duì)應(yīng)的保存于預(yù)取緩存中。
HTTP緩存檢查單元404,用于在所述目標(biāo)網(wǎng)頁(yè)資源獲取單元執(zhí)行所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)之前,檢查所述HTTP緩存內(nèi)是否保存有與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的網(wǎng)頁(yè)數(shù)據(jù)。
目標(biāo)網(wǎng)頁(yè)資源獲取單元405,用于接收加載目標(biāo)網(wǎng)頁(yè)資源的加載指令后,根據(jù)所述加載指令,在所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)。
目標(biāo)網(wǎng)頁(yè)資源獲取單元405包括預(yù)取緩存查找子單元406以及目標(biāo)網(wǎng)頁(yè)資源獲得子單元407。
預(yù)取緩存查找子單元406,用于根據(jù)所述目標(biāo)網(wǎng)頁(yè)資源的URL在所述預(yù)取緩存中查找所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的原始數(shù)據(jù)。
目標(biāo)網(wǎng)頁(yè)資源獲得子單元407,用于獲取所述預(yù)取緩存查找子單元406查找到的原始數(shù)據(jù)。
預(yù)取緩存清理單元408,用于當(dāng)滿足預(yù)設(shè)的清理?xiàng)l件時(shí)或者在預(yù)設(shè)的清理周期內(nèi),根據(jù)所述預(yù)取網(wǎng)頁(yè)資源保存入所述預(yù)取緩存的時(shí)間,以先保存先刪除的方式,依次將所述預(yù)取緩存中的已經(jīng)失效的預(yù)取網(wǎng)頁(yè)資源刪除。
用戶使用瀏覽器瀏覽網(wǎng)頁(yè)時(shí),由網(wǎng)頁(yè)資源預(yù)取單元401根據(jù)預(yù)加載策略從網(wǎng)站服務(wù)器獲得預(yù)取網(wǎng)頁(yè)資源,對(duì)用戶的行為進(jìn)行一個(gè)預(yù)估。然后預(yù)取網(wǎng)頁(yè)資源保存單元403由將所述預(yù)取網(wǎng)頁(yè)資源的URL與預(yù)取網(wǎng)頁(yè)資源的原始數(shù)據(jù)相對(duì)應(yīng)的保存于預(yù)取緩存單元402。如果用戶執(zhí)行了打開(kāi)目標(biāo)網(wǎng)頁(yè)的操作,瀏覽器會(huì)發(fā)出加載目標(biāo)網(wǎng)頁(yè)資源的加載指令到網(wǎng)頁(yè)資源獲取裝置,所述加載指令為加載所述目標(biāo)網(wǎng)頁(yè)資源的URL。首先由HTTP緩存檢查單元404檢查所述HTTP緩存內(nèi)是否保存有與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的網(wǎng)頁(yè)數(shù)據(jù)。如果用戶之前已經(jīng)瀏覽過(guò)目標(biāo)網(wǎng)頁(yè),那么該網(wǎng)頁(yè)的網(wǎng)頁(yè)數(shù)據(jù)是保存在HTTP緩存中的,如果在所述HTTP緩存中沒(méi)有與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的網(wǎng)頁(yè)數(shù)據(jù),則由目標(biāo)網(wǎng)頁(yè)資源獲取單元405,根據(jù)所述加載指令,在所述預(yù)取緩存中獲取與所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的預(yù)取網(wǎng) 頁(yè)資源的原始數(shù)據(jù),所述加載指令為加載目標(biāo)網(wǎng)頁(yè)資源的URL。獲取目標(biāo)網(wǎng)頁(yè)資源的原始數(shù)據(jù)分為兩個(gè)子步驟,有目標(biāo)網(wǎng)頁(yè)資源獲取單元405包括的兩個(gè)子單元完成.預(yù)取緩存查找子單元406根據(jù)所述目標(biāo)網(wǎng)頁(yè)資源的URL在所述預(yù)取緩存中查找所述目標(biāo)網(wǎng)頁(yè)資源對(duì)應(yīng)的原始數(shù)據(jù);目標(biāo)網(wǎng)頁(yè)資源獲得子單元407獲取所述預(yù)取緩存查找子單元406查找到的原始數(shù)據(jù)。預(yù)取緩存單元402的容量是有限的,在使用一段時(shí)間后,需要通過(guò)預(yù)取緩存清理單元408對(duì)預(yù)取緩存進(jìn)行清理,以先進(jìn)先出的方式,將預(yù)取緩存中已經(jīng)失效的預(yù)取網(wǎng)頁(yè)資源刪除。清理操作可以通過(guò)預(yù)設(shè)周期來(lái)執(zhí)行,也可以通過(guò)預(yù)設(shè)條件來(lái)限定。
本實(shí)施例所提供的網(wǎng)頁(yè)資源獲取裝置,其實(shí)現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實(shí)施例相同,為簡(jiǎn)要描述,裝置實(shí)施例部分未提及之處,可參考前述方法實(shí)施例中相應(yīng)內(nèi)容。
參閱圖5,本實(shí)施例提供的另一種網(wǎng)頁(yè)資源獲取裝置600,包括:處理器504,存儲(chǔ)器501,總線502和通信接口503,所述處理器504、通信接口503和存儲(chǔ)器501通過(guò)總線502連接;處理器504用于執(zhí)行存儲(chǔ)器501中存儲(chǔ)的可執(zhí)行模塊,例如計(jì)算機(jī)程序。
其中,存儲(chǔ)器501可能包含高速隨機(jī)存取存儲(chǔ)器(RAM:Random Access Memory),也可能還包括非不穩(wěn)定的存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤(pán)存儲(chǔ)器。通過(guò)至少一個(gè)通信接口503(可以是有線或者無(wú)線)實(shí)現(xiàn)該系統(tǒng)網(wǎng)元與至少一個(gè)其他網(wǎng)元之間的通信連接,可以使用互聯(lián)網(wǎng),廣域網(wǎng),本地網(wǎng),城域網(wǎng)等。
總線502可以是ISA總線、PCI總線或EISA總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖5中 僅用一個(gè)雙向箭頭表示,但并不表示僅有一根總線或一種類(lèi)型的總線。
其中,存儲(chǔ)器501用于存儲(chǔ)程序,所述處理器504在接收到執(zhí)行指令后,執(zhí)行所述程序,前述本實(shí)施例任一實(shí)施例揭示的流程定義的裝置所執(zhí)行的方法可以應(yīng)用于處理器504中,或者由處理器504實(shí)現(xiàn)。
處理器504可能是一種集成電路芯片,具有信號(hào)的處理能力。在實(shí)現(xiàn)過(guò)程中,上述方法的各步驟可以通過(guò)處理器504中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器504可以是通用處理器,包括中央處理器(Central Processing Unit,簡(jiǎn)稱數(shù)據(jù)請(qǐng)求端)、網(wǎng)絡(luò)處理器(Network Processor,簡(jiǎn)稱NP)等;還可以是數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門(mén)陣列(FPGA)或者其他可編程邏輯器件、分立門(mén)或者晶體管邏輯器件、分立硬件組件??梢詫?shí)現(xiàn)或者執(zhí)行本實(shí)施例中的公開(kāi)的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本實(shí)施例所公開(kāi)的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲(chǔ)器,閃存、只讀存儲(chǔ)器,可編程只讀存儲(chǔ)器或者電可擦寫(xiě)可編程存儲(chǔ)器、寄存器等本領(lǐng)域成熟的存儲(chǔ)介質(zhì)中。該存儲(chǔ)介質(zhì)位于存儲(chǔ)器501,處理器504讀取存儲(chǔ)器501中的信息,結(jié)合其硬件完成上述方法的步驟。
另外,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè) 或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
本實(shí)施例所提供的進(jìn)行一種網(wǎng)頁(yè)資源獲取裝置的計(jì)算機(jī)程序產(chǎn)品,包括存儲(chǔ)了程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實(shí)施例中所述的方法,具體實(shí)現(xiàn)可參見(jiàn)方法實(shí)施例,在此不再贅述。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,又例如,多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可 以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素, 并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
在本發(fā)明的描述中,還需要說(shuō)明的是,除非另有明確的規(guī)定和限定,術(shù)語(yǔ)“設(shè)置”、“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過(guò)中間媒介間接相連,可以是兩個(gè)元件內(nèi)部的連通。對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語(yǔ)在本發(fā)明中的具體含義。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類(lèi)似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。