專利名稱:一種嵌入式瀏覽器文件緩存方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式技術(shù)領(lǐng)域,具體的說是涉及一種嵌入式瀏覽器文件緩存方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,越來越多的內(nèi)容通過互聯(lián)網(wǎng)進(jìn)行傳輸和訪問。這種基于 Web(—種基于HTTP超文本傳輸協(xié)議的內(nèi)容平臺)和Browser(瀏覽器)的應(yīng)用模式越來越 多的出現(xiàn)于各種應(yīng)用開發(fā)中,通常被成為B/S(Browser/Server——瀏覽器/服務(wù)器)應(yīng)用 模式。 互聯(lián)網(wǎng)的內(nèi)容都是以文件的方式存放在Web服務(wù)器上,通過HTTP協(xié)議傳送到瀏覽 器客戶端,經(jīng)瀏覽器處理后,將內(nèi)容表現(xiàn)在終端上。在客戶端瀏覽器獲取到來自Web服務(wù)器 的文件時,文件通常不能直接在終端輸出上展示,必須做一定處理。因此,瀏覽器首先必須 將一些文件在本地進(jìn)行緩存,處理成可以直接展示的數(shù)據(jù)后,再將顯示和表現(xiàn)這些數(shù)據(jù)。
Web頁面是由多個分離的文件組成。許多文件,如圖片、腳本文件,往往由多個頁面 共享。在瀏覽器刷新頁面的過程中,如果頻繁的請求這些文件,不但會造成網(wǎng)絡(luò)擁堵,也會 增加工作流程,造成瀏覽器用戶等待頁面的周期加長,從而增加了執(zhí)行代價,并降低了執(zhí)行 效能。 在嵌入式領(lǐng)域,資源非常有限,因此不能一次性緩存大量的文件,必須有一種淘汰 機(jī)制,使得應(yīng)用能夠在執(zhí)行效能和占用空間中取得一個平衡。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提出一種嵌入式瀏覽器文件緩存方法,對緩存文
件進(jìn)行選擇性淘汰,在有限的存儲空間下,盡可能提高嵌入式瀏覽器的響應(yīng)效率。 本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案是一種嵌入式瀏覽器文件緩存方
法,包括以下步驟 a.建立緩存文件管理隊列; b.為緩存文件管理隊列分配一個固定大小的緩存空間,初始化所有頁面的最近使 用周期為O; c.等待瀏覽器的url觸發(fā); d.當(dāng)有url觸發(fā)到來時,判斷當(dāng)前url觸發(fā)是否為根文檔url,若是,則執(zhí)行步驟 e,若否,則執(zhí)行步驟f ; e.將當(dāng)前緩存文件管理隊列中所有的節(jié)點(diǎn)的最近使用周期加l,轉(zhuǎn)步驟f ;
f.判斷觸發(fā)url時,當(dāng)前緩存文件管理隊列中是否已經(jīng)存在url,若是,則執(zhí)行步 驟g,若否,則執(zhí)行步驟h; g.將該url對應(yīng)的節(jié)點(diǎn)從緩存文件管理隊列中取出,并清空其最近使用周期,對 其最近使用次數(shù)加l,重新按順序插入緩存文件管理隊列,跳轉(zhuǎn)至步驟c ;
h.發(fā)送url請求,轉(zhuǎn)步驟i ;
i.對獲取到的web文件,新建立一個節(jié)點(diǎn),記錄文件數(shù)據(jù)、url及文件大小,并將該 節(jié)點(diǎn)的最近使用周期和最近使用次數(shù)均置O ; j.計算緩存空間剩余容量的大小,并與當(dāng)前節(jié)點(diǎn)文件的大小進(jìn)行比較,若剩余容
量大于等于當(dāng)前節(jié)點(diǎn)文件大小則轉(zhuǎn)步驟k,若剩余容量小于當(dāng)前節(jié)點(diǎn)文件大小則轉(zhuǎn)步驟m ; k.將節(jié)點(diǎn)放入緩存文件管理隊列,跳轉(zhuǎn)至步驟c ; m.按一定規(guī)則釋放緩存文件管理隊列中的部分節(jié)點(diǎn),跳轉(zhuǎn)至步驟j。 所述步驟g中,將該url對應(yīng)的節(jié)點(diǎn)按照如下順序插入緩存文件管理隊列g(shù)l.從
緩存文件管理隊列頭開始,比較該url對應(yīng)的節(jié)點(diǎn)與緩存文件管理隊列中的第一個節(jié)點(diǎn)的
最近使用周期大小,如果前者大則取隊列中的下一個節(jié)點(diǎn)進(jìn)行比較,如果后者大則執(zhí)行步
驟g2 ;g2.比較該url對應(yīng)的節(jié)點(diǎn)的最近使用次數(shù)與隊列中的節(jié)點(diǎn)的最近使用次數(shù)的大小,
若前者小則取隊列中的下一個節(jié)點(diǎn)進(jìn)行比較,若前者大則執(zhí)行步驟g3 ;g3.在當(dāng)前位置插
入該url對應(yīng)的節(jié)點(diǎn)。 所述步驟k中,將節(jié)點(diǎn)按照最近使用周期大小的順序放入緩存文件管理隊列,對
于相同最近使用周期大小的,按照最近使用次數(shù)的大小放入緩存文件管理隊列。 所述步驟m中,按如下規(guī)則釋放緩存文件管理隊列中的部分節(jié)點(diǎn)優(yōu)先釋放最近
使用周期最大的節(jié)點(diǎn),如果有多個最近使用周期最大的節(jié)點(diǎn),則優(yōu)先釋放最近使用周期最
大且最近使用次數(shù)最少的節(jié)點(diǎn)。 所述步驟m中,按如下規(guī)則釋放緩存文件管理隊列中的部分節(jié)點(diǎn)優(yōu)先釋放最近 使用次數(shù)最少的節(jié)點(diǎn),如果有多個最近使用次數(shù)最少的節(jié)點(diǎn),則優(yōu)先釋放最近使用次數(shù)最 少且最近使用周期最大的節(jié)點(diǎn)。 本發(fā)明的有益效果是對緩存文件進(jìn)行有效地選擇性淘汰,提高瀏覽器的響應(yīng)效率。
圖1問本發(fā)明的方法流程圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的描述。 本發(fā)明的主要指導(dǎo)思想是預(yù)先分配一個固定大小的空間,對所有已經(jīng)獲取的文 件進(jìn)行本地緩存,當(dāng)緩存文件量小于緩存空間時,不要立即釋放緩存;等到緩存空間接近占 滿時,首先釋放那些最長時間未被使用的文件,再釋放那些按照一定統(tǒng)計規(guī)則估計,未來被 使用的可能性最低的文件,如此就能實現(xiàn)對緩存文件進(jìn)行選擇性地淘汰,提高嵌入式瀏覽 器的響應(yīng)效率。 如圖1所示,本發(fā)明中的嵌入式瀏覽器文件緩存方法,采取以下措施來實現(xiàn)a.建 立緩存文件管理隊列;b.為緩存文件管理隊列分配一個固定大小的緩存空間,初始化所有 頁面的最近使用周期為O,這里的使用周期指的是頁面的刷新次數(shù)間隔,第一次刷新時使用 周期為1,第二次刷新時使用周期為2,....如此類推;c.等待瀏覽器的url(統(tǒng)一資源定位 符)觸發(fā);d.當(dāng)有url觸發(fā)到來時,判斷當(dāng)前url觸發(fā)是否為根文檔(頁面默認(rèn)文檔)url, 若是,則執(zhí)行步驟e,若否,則執(zhí)行步驟f ;這里判斷是否為根文檔url,是為了按照整個頁面3/3頁
的刷新次數(shù)來計算對某個url資源的引用頻度。e.將當(dāng)前緩存文件管理隊列中所有的節(jié)點(diǎn)的最近使用周期加l,表示這些節(jié)點(diǎn)現(xiàn)在被第二次刷新,轉(zhuǎn)步驟f ;f.判斷觸發(fā)url時,當(dāng)前緩存文件管理隊列中是否已經(jīng)存在url,若是,則執(zhí)行步驟g,若否,則執(zhí)行步驟h ;g.將該url對應(yīng)的節(jié)點(diǎn)從緩存文件管理隊列中取出,并清空其最近使用周期,對其最近使用次數(shù)加l,重新按順序插入緩存文件管理隊列g(shù)l.從緩存文件管理隊列頭開始,比較該url對應(yīng)的節(jié)點(diǎn)與緩存文件管理隊列中的第一個節(jié)點(diǎn)的最近使用周期大小,如果前者大則取隊列中的下一個節(jié)點(diǎn)進(jìn)行比較,如果后者大則執(zhí)行步驟g2 ;g2.比較該url對應(yīng)的節(jié)點(diǎn)的最近使用次數(shù)與隊列中的節(jié)點(diǎn)的最近使用次數(shù)的大小,若前者小則取隊列中的下一個節(jié)點(diǎn)進(jìn)行比
較,若前者大則執(zhí)行步驟g3 ;g3.在當(dāng)前位置插入該url對應(yīng)的節(jié)點(diǎn);跳轉(zhuǎn)至步驟C ;h.發(fā)送
url請求,轉(zhuǎn)步驟i ;i.對獲取到的web文件,新建立一個節(jié)點(diǎn),記錄文件數(shù)據(jù)、url及文件大
小,并將該節(jié)點(diǎn)的最近使用周期和最近使用次數(shù)均置O ;j.計算緩存空間剩余容量的大小,
并與當(dāng)前節(jié)點(diǎn)文件的大小進(jìn)行比較,若剩余容量大于等于當(dāng)前節(jié)點(diǎn)文件大小則轉(zhuǎn)步驟k,若
剩余容量小于當(dāng)前節(jié)點(diǎn)文件大小則轉(zhuǎn)步驟m ;k.將節(jié)點(diǎn)按照最近使用周期大小的順序放入
緩存文件管理隊列,對于相同最近使用周期大小的,按照最近使用次數(shù)的大小放入緩存文
件管理隊列,跳轉(zhuǎn)至步驟C ;m.按如下規(guī)則釋放緩存文件管理隊列中的部分節(jié)點(diǎn)優(yōu)先釋放
最近使用周期最大的節(jié)點(diǎn),如果有多個最近使用周期最大的節(jié)點(diǎn),則優(yōu)先釋放最近使用周期最大且最近使用次數(shù)最少的節(jié)點(diǎn)。同樣也可以反之,優(yōu)先釋放最近使用次數(shù)最少的節(jié)點(diǎn),如果有多個最近使用次數(shù)最少的節(jié)點(diǎn),則優(yōu)先釋放最近使用次數(shù)最少且最近使用周期最大的節(jié)點(diǎn)。
權(quán)利要求
一種嵌入式瀏覽器文件緩存方法,其特征在于包括以下步驟a.建立緩存文件管理隊列;b.為緩存文件管理隊列分配一個固定大小的緩存空間,初始化所有頁面的最近使用周期為0;c.等待瀏覽器的url觸發(fā);d.當(dāng)有url觸發(fā)到來時,判斷當(dāng)前url觸發(fā)是否為根文檔url,若是,則執(zhí)行步驟e,若否,則執(zhí)行步驟f;e.將當(dāng)前緩存文件管理隊列中所有的節(jié)點(diǎn)的最近使用周期加1,轉(zhuǎn)步驟f;f.判斷觸發(fā)url時,當(dāng)前緩存文件管理隊列中是否已經(jīng)存在url,若是,則執(zhí)行步驟g,若否,則執(zhí)行步驟h;g.將該url對應(yīng)的節(jié)點(diǎn)從緩存文件管理隊列中取出,將最近使用周期置0,對其最近使用次數(shù)加1,重新按順序插入緩存文件管理隊列,跳轉(zhuǎn)至步驟c;h.發(fā)送url請求,轉(zhuǎn)步驟i;i.對獲取到的web文件,新建立一個節(jié)點(diǎn),記錄文件數(shù)據(jù)、url及文件大小,并將該節(jié)點(diǎn)的最近使用周期和最近使用次數(shù)均置0;j.計算緩存空間剩余容量的大小,并與當(dāng)前節(jié)點(diǎn)文件的大小進(jìn)行比較,若剩余容量大于等于當(dāng)前節(jié)點(diǎn)文件大小則轉(zhuǎn)步驟k,若剩余容量小于當(dāng)前節(jié)點(diǎn)文件大小則轉(zhuǎn)步驟m;k.將節(jié)點(diǎn)放入緩存文件管理隊列,跳轉(zhuǎn)至步驟c;m.按一定規(guī)則釋放緩存文件管理隊列中的部分節(jié)點(diǎn),跳轉(zhuǎn)至步驟j。
2. 如權(quán)利要求1所述的一種嵌入式瀏覽器文件緩存方法,其特征在于所述步驟g中, 將該url對應(yīng)的節(jié)點(diǎn)按照如下順序插入緩存文件管理隊列g(shù)l.從緩存文件管理隊列頭開 始,比較該url對應(yīng)的節(jié)點(diǎn)與緩存文件管理隊列中的第一個節(jié)點(diǎn)的最近使用周期大小,如 果前者大則取隊列中的下一個節(jié)點(diǎn)進(jìn)行比較,如果后者大則執(zhí)行步驟g2 ;g2.比較該url對 應(yīng)的節(jié)點(diǎn)的最近使用次數(shù)與隊列中的節(jié)點(diǎn)的最近使用次數(shù)的大小,若前者小則取隊列中的 下一個節(jié)點(diǎn)進(jìn)行比較,若前者大則執(zhí)行步驟g3 ;g3.在當(dāng)前位置插入該url對應(yīng)的節(jié)點(diǎn)。
3. 如權(quán)利要求1或2所述的一種嵌入式瀏覽器文件緩存方法,其特征在于所述步驟 k中,將節(jié)點(diǎn)按照最近使用周期大小的順序放入緩存文件管理隊列,對于相同最近使用周期 大小的,按照最近使用次數(shù)的大小放入緩存文件管理隊列。
4. 如權(quán)利要求1或2所述的一種嵌入式瀏覽器文件緩存方法,其特征在于所述步驟m中,按如下規(guī)則釋放緩存文件管理隊列中的部分節(jié)點(diǎn)優(yōu)先釋放最近使用周期最大的節(jié)點(diǎn),如果有多個最近使用周期最大的節(jié)點(diǎn),則優(yōu)先釋放最近使用周期最大且最近使用次數(shù)最少 的節(jié)點(diǎn)。
5. 如權(quán)利要求1或2所述的一種嵌入式瀏覽器文件緩存方法,其特征在于所述步驟m中,按如下規(guī)則釋放緩存文件管理隊列中的部分節(jié)點(diǎn)優(yōu)先釋放最近使用次數(shù)最少的節(jié)點(diǎn),如果有多個最近使用次數(shù)最少的節(jié)點(diǎn),則優(yōu)先釋放最近使用次數(shù)最少且最近使用周期最大 的節(jié)點(diǎn)。
全文摘要
本發(fā)明涉及嵌入式技術(shù)領(lǐng)域,具體的說是涉及一種嵌入式瀏覽器文件緩存方法。本發(fā)明公開了一種嵌入式瀏覽器文件緩存方法,對緩存文件進(jìn)行選擇性淘汰,在有限的存儲空間下,盡可能提高嵌入式瀏覽器的響應(yīng)效率。其技術(shù)方案的要點(diǎn)可概括為預(yù)先分配一個固定大小的空間,對所有已經(jīng)獲取的文件進(jìn)行本地緩存,當(dāng)緩存文件量小于緩存空間時,不要立即釋放緩存;等到緩存空間接近占滿時,首先釋放那些最長時間未被使用的文件,再釋放那些按照一定統(tǒng)計規(guī)則估計,未來被使用的可能性最低的文件。本發(fā)明的有益效果是對緩存文件進(jìn)行有效地選擇性淘汰,提高瀏覽器的響應(yīng)效率,適用于嵌入式瀏覽器。
文檔編號G06F17/30GK101706827SQ20091030628
公開日2010年5月12日 申請日期2009年8月28日 優(yōu)先權(quán)日2009年8月28日
發(fā)明者胡濤 申請人:四川虹微技術(shù)有限公司