一種嵌入式瀏覽器磁盤緩存的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提出一種嵌入式瀏覽器的磁盤緩存方法,包含:步驟101,啟動第一線程和第二線程,并等待瀏覽器的下載請求事件;步驟102,當(dāng)瀏覽器接收到下載請求時:第一線程用于下載請求中磁盤緩存的寫入和讀出;第二線程以一定的時間間隔,在瀏覽器空閑時從后臺發(fā)起下載請求更新緩存資源;其中,所述線程也能夠采用進(jìn)程;當(dāng)?shù)诙€程更新磁盤緩存信息時,第一線程與第二線程對磁盤緩存信息的單個資源互斥訪問;當(dāng)?shù)谝痪€程讀寫磁盤緩存信息時,第二線程與第一線程對磁盤緩存信息互斥訪問;且第二線程的線程執(zhí)行優(yōu)先級比第一線程的低。磁盤緩存讀寫模塊和磁盤緩存更新模塊并行執(zhí)行,分別在不同的線程或者進(jìn)程中執(zhí)行;通過兩者互相配合,提高網(wǎng)絡(luò)資源的訪問速度。
【專利說明】一種嵌入式瀏覽器磁盤緩存的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式【技術(shù)領(lǐng)域】,特別涉及一種嵌入式瀏覽器磁盤緩存的方法及系統(tǒng)。
【背景技術(shù)】
[0002]在嵌入式系統(tǒng)中,特別是作為三網(wǎng)融合終端的網(wǎng)絡(luò)電視機(jī)頂盒中,嵌入式瀏覽器可能成為嵌入式系統(tǒng)最主要的應(yīng)用軟件,甚至有可能是唯一的直接支持與用戶交互的應(yīng)用軟件。在這種情況下,嵌入式瀏覽器的訪問速度直接影響到用戶的體驗效果。瀏覽器緩存,即本地存儲用戶訪問過的信息,用于提高用戶再次訪問相關(guān)信息時的速度。
[0003]目前嵌入式瀏覽器緩存方面的技術(shù)有基于內(nèi)存緩存處理技術(shù)和基于HTTP1.1協(xié)議的磁盤緩存處理技術(shù)。
[0004]基于內(nèi)存緩存處理技術(shù)是由嵌入式瀏覽器應(yīng)用初期業(yè)務(wù)量小,硬盤容量少的應(yīng)用場景決定的。隨著三網(wǎng)融合產(chǎn)生了網(wǎng)絡(luò)電視機(jī)頂盒等具有業(yè)務(wù)量多、硬盤容量大的嵌入式終端,因此導(dǎo)致目前僅采用內(nèi)存進(jìn)行網(wǎng)絡(luò)資源緩存的嵌入式瀏覽器已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足新的需求。嵌入式系統(tǒng)的資源非常有限,而嵌入式瀏覽器內(nèi)存緩存一方面受限于系統(tǒng)能夠提供的緩存空間大小,另一方面受限于內(nèi)存緩存的非持久性,當(dāng)一次訪問的資源太多或瀏覽器重新啟動時,訪問過的網(wǎng)絡(luò)資源就得重新下載。
[0005]現(xiàn)有技術(shù)的基于HTTP1.1協(xié)議的磁盤緩存處理技術(shù)的缺點(diǎn)在于相當(dāng)一部分的下載請求都得去服務(wù)器端驗證緩存是否有效,由于每次請求時都得重新建立連接,而數(shù)字電視的業(yè)務(wù)特點(diǎn)決定了服務(wù)器緩存資源的更新頻率比較低,因此絕大部分的服務(wù)器端緩存資源的有效性驗證都是不需要的,從而造成時間的浪費(fèi),用戶上網(wǎng)體驗差等問題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是提供一種高效可靠的嵌入式瀏覽器磁盤緩存方法,通過磁盤緩存讀寫模塊和磁盤緩存更新模塊的互相配合,減少了使用磁盤緩存時不必要的服務(wù)器端連接,提高了網(wǎng)絡(luò)資源的訪問速度。
[0007]為實現(xiàn)上述目的,本發(fā)明提供了一種嵌入式瀏覽器的磁盤緩存方法,所述方法包含:
[0008]步驟101,啟動第一線程和第二線程,并等待瀏覽器的下載請求事件;
[0009]步驟102,當(dāng)瀏覽器接收到下載請求時:
[0010]第一線程用于下載請求中磁盤緩存的寫入和讀出;
[0011]第二線程以一定的時間間隔,在瀏覽器空閑時從后臺發(fā)起下載請求更新緩存資源;
[0012]其中,
[0013]所述線程也能夠采用進(jìn)程;
[0014]當(dāng)?shù)诙€程更新磁盤緩存信息時,第一線程與第二線程對磁盤緩存信息的單個資源互斥訪問;
[0015]當(dāng)?shù)谝痪€程讀寫磁盤緩存信息時,第二線程與第一線程對磁盤緩存信息互斥訪問;
[0016]且第二線程的線程執(zhí)行優(yōu)先級比第一線程的低。
[0017]上述步驟102進(jìn)一步包含:
[0018]步驟102-1)第一線程檢查磁盤緩存是否包含請求資源,若磁盤緩存包含請求資源并且該資源當(dāng)前沒有被第二線程更新,則直接讀取磁盤緩存的內(nèi)容,由瀏覽器內(nèi)核渲染并顯示頁面;反之,直接發(fā)起網(wǎng)絡(luò)下載請求,獲得下載數(shù)據(jù)后寫入到磁盤緩存,下載數(shù)據(jù)交瀏覽器內(nèi)核渲染、顯不;
[0019]步驟102-2)第二線程依據(jù)策略選取一定時期內(nèi)的磁盤緩存作為更新的備選項,當(dāng)更新時機(jī)成熟時,從后臺逐一發(fā)起更新備選項的資源下載請求,若通過與服務(wù)器驗證該資源未過期,則更新資源的存儲日期;如果資源已過期,則下載新的資源替代舊的資源,并且更新資源的下載時間為當(dāng)前時間;磁盤緩存更新模塊更新結(jié)束之后,選擇新的更新備選項,等待時機(jī)進(jìn)行下次更新;
[0020]其中,所述策略為:選取備選更新資源,通過結(jié)合資源的優(yōu)先級、資源的本地更新時間建立優(yōu)先隊列進(jìn)而維護(hù)磁盤緩存更新備選資源的更新優(yōu)先級,依照優(yōu)先級依次更新緩存資源。
[0021 ] 上述步驟102-1)進(jìn)一步包含:
[0022]步驟102-1-1)當(dāng)瀏覽器接收到用戶的下載請求時,則進(jìn)入步驟102-1-2 ;當(dāng)接收到瀏覽器退出請求時,則退出程序;
[0023]步驟101-1-2)如果當(dāng)前磁盤緩存中包含請求下載的內(nèi)容時,則阻塞磁盤緩存存儲線程,進(jìn)入步驟102-1-3 ;
[0024]步驟102-1-3)瀏覽器讀寫磁盤緩存時是對磁盤緩存的單個記錄互斥的訪問,這樣當(dāng)?shù)诙€程更新磁盤緩存的某條記錄時,第一依然能夠讀寫其它當(dāng)前未被更新的緩存記錄;當(dāng)?shù)谝痪€程不能互斥訪問某條緩存記錄時,進(jìn)入步驟102-1-6,反之進(jìn)入步驟102-1-4 ;
[0025]步驟102-1-4,發(fā)起網(wǎng)絡(luò)下載請求,進(jìn)入步驟102-1-6 ;
[0026]在步驟102-1-5,第一線程讀取緩存數(shù)據(jù),進(jìn)入步驟102-1-7 ;
[0027]步驟102-1-6,根據(jù)HTTP協(xié)議下載接收網(wǎng)絡(luò)數(shù)據(jù),進(jìn)入步驟102_1_7 ;
[0028]步驟101-1-7,主線程將讀取的緩存數(shù)據(jù)解析渲染到屏幕上,呈現(xiàn)給用戶,進(jìn)入步驟 102-1-1 ;
[0029]步驟102-1-8,如果接收到的數(shù)據(jù)在磁盤緩存中已經(jīng)存儲過,則更新磁盤緩存信息,進(jìn)入步驟102-1-7,反之,進(jìn)入步驟102-1-9 ;
[0030]步驟102-1-9,將接收的數(shù)據(jù)添加到磁盤緩存中。
[0031 ] 上述步驟102-2 )進(jìn)一步包含:
[0032]步驟102-2-1,第二線程定期運(yùn)行,選擇需要更新的緩存條目;第二線程選擇需要更新的緩存條目時,對磁盤緩存信息的訪問同第一線程是互斥的,即當(dāng)?shù)谝痪€程訪問磁盤緩存信息時,第二線程就處于休眠狀態(tài);第一線程的讀寫互斥粒度比第二線程的互斥力度更細(xì),因此第二線程的線程執(zhí)行優(yōu)先級就比較低;第二線程選定磁盤緩存更新備選項之后,進(jìn)入步驟102-2-2 ;
[0033]步驟102-2-2,第二線程在瀏覽器處于空閑的時候定期發(fā)起更新請求,進(jìn)入步驟102-2-3 ;
[0034]步驟102-2-3,第二線程依據(jù)磁盤緩存被選項資源的優(yōu)先級以及磁盤緩存被選項的上次更新時間以優(yōu)先隊列的形式維護(hù)更新被選項,更新時從后臺按照資源在優(yōu)先隊列中的順序順次發(fā)起更新請求,進(jìn)入步驟102-2-4 ;
[0035]步驟102-2-4,第二線程接收到更新的數(shù)據(jù)之后,更新磁盤緩存內(nèi)容。
[0036]此外,本發(fā)明還提供了一種嵌入式瀏覽器的磁盤緩存系統(tǒng),所述系統(tǒng)包含:
[0037]瀏覽器運(yùn)行磁盤緩存讀寫模塊,用于網(wǎng)絡(luò)下載請求中磁盤緩存數(shù)據(jù)的讀取和寫入;和
[0038]瀏覽器磁盤緩存更新模塊,用于選取備選更新資源,通過結(jié)合資源的優(yōu)先級、資源的本地更新時間建立優(yōu)先隊列,該隊列用于維護(hù)磁盤緩存更新備選資源的更新優(yōu)先級,以一定的時間間隔,在瀏覽器比較空閑的時候從后臺發(fā)起下載請求,依照優(yōu)先級依次更新緩存資源;
[0039]其中,所述磁盤緩存讀寫模塊和磁盤緩存更新模塊并行執(zhí)行,且兩個模塊分別在不同的線程或者進(jìn)程中執(zhí)行,所述磁盤緩存讀寫模塊和磁盤緩存更新模塊對磁盤緩存的訪問采用不同的互斥粒度。
[0040]上述瀏覽器運(yùn)行磁盤緩存讀寫模塊進(jìn)一步包含:
[0041]檢查及判決子模塊,用于檢查磁盤緩存是否包含請求資源,若磁盤緩存包含請求資源并且該資源當(dāng)前沒有被第二線程更新,則啟動讀取子模塊;若磁盤緩存不包含請求資源,則啟動下載請求子模塊;
[0042]讀取子模塊,用于直接讀取磁盤緩存的內(nèi)容,由瀏覽器內(nèi)核渲染并顯示頁面;
[0043]下載請求子模塊,用于直接發(fā)起網(wǎng)絡(luò)下載請求,獲得下載數(shù)據(jù)后啟動寫入子模塊;和
[0044]寫入子模塊,用于將獲得的下載數(shù)據(jù)寫入到磁盤緩存,并下載數(shù)據(jù)交瀏覽器內(nèi)核渲染、顯示。
[0045]上述瀏覽器磁盤緩存更新模塊進(jìn)一步包含:
[0046]更新備選項選擇就排序子模塊,用于選取一定時期內(nèi)的磁盤緩存作為更新的備選項,通過結(jié)合更新備選項的資源的優(yōu)先級、資源的本地更新時間建立優(yōu)先隊列進(jìn)而維護(hù)磁盤緩存更新備選項包含的資源的更新優(yōu)先級;和
[0047]更新子模塊,用于當(dāng)更新時機(jī)成熟時,從后臺逐一發(fā)起更新備選項的資源下載請求,若通過與服務(wù)器驗證該資源未過期,則更新資源的存儲日期;如果資源已過期,則下載新的資源替代舊的資源,并且更新資源的下載時間為當(dāng)前時間。
[0048]綜上所述,本發(fā)明提供了一種嵌入式瀏覽器磁盤緩存方法,瀏覽器運(yùn)行磁盤緩存讀寫模塊和磁盤緩存更新模塊,磁盤緩存讀寫模塊用來讀取或者寫入網(wǎng)絡(luò)資源,磁盤緩存更新模塊用于更新緩存的資源,該方法包含如下步驟:發(fā)起資源下載請求時,磁盤緩存讀取模塊查詢磁盤緩存中是否包含請求資源,若磁盤緩存包含請求資源并且磁盤緩存更新模塊當(dāng)前沒有對該資源更新,則由磁盤緩存讀取模塊直接讀取該資源,并上傳給瀏覽器內(nèi)核渲染顯示;反之,直接發(fā)起網(wǎng)絡(luò)下載請求,磁盤緩存讀寫模塊將接收到的資源存儲到磁盤緩存中;磁盤緩存更新模塊根據(jù)資源的優(yōu)先級和本地更新時間,選取合適的資源作為更新備選資源,時機(jī)成熟時從后臺逐一發(fā)起下載請求,通過服務(wù)器端驗證資源有效性并且更新資源。
[0049]與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)優(yōu)勢在于:
[0050]通過將緩存的讀寫和緩存的更新操作分別處在不同的進(jìn)程或線程中執(zhí)行,從而避免了下載資源階段,讀取緩存資源時連接服務(wù)器端的資源有效性驗證,減少了不必要的連接,可以提高資源的訪問速度,增強(qiáng)用戶上網(wǎng)體驗,進(jìn)一步提高了嵌入式瀏覽器的性能。即,本發(fā)明提出一種使用緩存的時候不需要再連接服務(wù)器端驗證,可以直接讀取緩存的嵌入式瀏覽器磁盤緩存技術(shù),瀏覽器運(yùn)行磁盤緩存讀寫模塊和磁盤緩存更新模塊,磁盤緩存讀寫模塊和磁盤緩存更新模塊并行執(zhí)行,分別在不同的線程或者進(jìn)程中執(zhí)行,磁盤緩存讀寫模塊用于網(wǎng)絡(luò)下載請求中磁盤緩存的寫入和直接讀取,避免再去服務(wù)器端進(jìn)行資源有效性驗證;該處的直接讀取含義是相對于之前的磁盤緩存方案來說的,之前的磁盤緩存方案依據(jù)HTTP1.1協(xié)議,緩存在讀取之前必須先驗證其有效性,一般是提供緩存的信息鏈接到服務(wù)器端再驗證緩存是否有效,根據(jù)服務(wù)器端的應(yīng)答結(jié)果來判讀是從服務(wù)器端讀取新的資源還是直接使用緩存;本發(fā)明的方案在使用緩存資源的時候不需要再去服務(wù)器端驗證資源的有效性,因此說“直接讀取”。
【專利附圖】
【附圖說明】
[0051]圖1為本發(fā)明實施例嵌入式瀏覽器磁盤緩存的方法流程圖。
【具體實施方式】
[0052]下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
[0053]本發(fā)明是一種基于磁盤的嵌入式瀏覽器緩存方法實現(xiàn)的方案,其核心在于:本發(fā)明的嵌入式瀏覽器磁盤緩存的存儲介質(zhì)為磁盤;瀏覽器運(yùn)行磁盤緩存讀寫模塊和磁盤緩存更新模塊,磁盤緩存讀寫模塊用于網(wǎng)絡(luò)下載請求時讀取和寫入磁盤緩存數(shù)據(jù),磁盤緩存更新模塊用于定期在后臺更新磁盤緩存數(shù)據(jù);磁盤緩存讀寫模塊和磁盤緩存更新模塊是并行執(zhí)行的,分別在不同的進(jìn)程或者線程中執(zhí)行;磁盤緩存更新模塊通過建立優(yōu)先隊列,結(jié)合資源的優(yōu)先級、資源的本地更新時間來存儲訪問磁盤緩存;當(dāng)瀏覽器接收到下載請求時,磁盤緩存讀寫模塊與磁盤緩存更新模塊之間互斥地訪問磁盤緩存檢索信息,檢查磁盤緩存是否包含請求資源,若磁盤緩存包含請求資源并且該資源當(dāng)前沒有被磁盤緩存更新模塊更新,則直接讀取磁盤緩存的內(nèi)容,由瀏覽器內(nèi)核渲染并顯示頁面,反之直接發(fā)起網(wǎng)絡(luò)下載請求,獲得下載數(shù)據(jù)后寫入到磁盤緩存,下載數(shù)據(jù)交瀏覽器內(nèi)核渲染、顯示;磁盤緩存更新模塊更新磁盤緩存信息時,磁盤緩存讀寫模塊與其互斥地訪問磁盤緩存的某一項記錄;磁盤緩存更新模塊選取一定時期內(nèi)的磁盤緩存作為更新的備選項,結(jié)合資源的優(yōu)先級和緩存的更新時間,以優(yōu)先隊列的數(shù)據(jù)格式維護(hù)磁盤緩存更新備選項列表,當(dāng)時機(jī)成熟時,從后臺逐一發(fā)起更新備選項的資源下載請求,更新磁盤緩存;磁盤緩存更新模塊下載到新的資源數(shù)據(jù)之后只是更新磁盤緩存,而不顯示到磁盤緩存更新模塊更新結(jié)束之后,選擇新的更新備選項,等待時機(jī)進(jìn)行下次更新。
[0054]圖1為本發(fā)明實施例嵌入式瀏覽器磁盤緩存的方法流程圖。嵌入式瀏覽器運(yùn)行第一線程和第二線程,其中第一線程對應(yīng)于圖1中左半部分的磁盤緩存讀寫模塊,第二線程對應(yīng)于圖1中右半部分的磁盤緩存更新模塊。瀏覽器磁盤緩存讀寫模塊用于在網(wǎng)絡(luò)下載請求中讀寫磁盤緩存,執(zhí)行步驟101-115,其中第一線程就是主線程,第二線程就是緩存更新線程。磁盤緩存更新模塊用于更新磁盤緩存信息,執(zhí)行步驟200-204。具體步驟如下:
[0055]在步驟101:流程開始,用戶啟動瀏覽器。
[0056]在步驟102:瀏覽器主線程和磁盤緩存更新線程被開啟,瀏覽器主線程進(jìn)入步驟103,磁盤緩存存儲線程進(jìn)入步驟200。
[0057]在步驟103,瀏覽器主線程完成初始化工作后進(jìn)入瀏覽器事件循環(huán),等待用戶操作
[0058]以下為瀏覽器主線程執(zhí)行步驟:
[0059]在步驟104:當(dāng)瀏覽器接收到用戶的下載請求時,則進(jìn)入步驟107 ;當(dāng)接收到瀏覽器退出請求時,則進(jìn)入到步驟105判斷是否有退出請求,如果有則進(jìn)入步驟115結(jié)束,否則還回到該步驟繼續(xù)判斷是否有用戶的下載請求。
[0060]在步驟107:如果當(dāng)前磁盤緩存中包含請求下載的內(nèi)容時阻塞磁盤緩存存儲線程。進(jìn)入步驟108。
[0061]在步驟108,瀏覽器磁盤緩存讀寫模塊讀寫磁盤緩存時是對磁盤緩存的單個記錄互斥的訪問,這樣當(dāng)磁盤緩存更新模塊更新磁盤緩存的某條記錄時,磁盤緩存讀寫模塊依然可以讀寫其它當(dāng)前未被更新的緩存記錄,避免了無謂的等待,提高了用戶體驗;當(dāng)磁盤緩存讀寫模塊不能互斥訪問某條緩存記錄時,進(jìn)入步驟111,反之進(jìn)入步驟109。
[0062]在步驟109:發(fā)起網(wǎng)絡(luò)下載請求,進(jìn)入步驟111。
[0063]在步驟110:瀏覽器磁盤緩存讀寫模塊讀取緩存數(shù)據(jù),進(jìn)入步驟112。
[0064]在步驟111:根據(jù)HTTP協(xié)議下載接收網(wǎng)絡(luò)數(shù)據(jù),進(jìn)入步驟113。
[0065]在步驟112:主線程將讀取的緩存數(shù)據(jù)解析渲染到屏幕上,呈現(xiàn)給用戶,進(jìn)入步驟104。
[0066]在步驟113:如果接收到的數(shù)據(jù)在磁盤緩存中已經(jīng)存儲過,則更新磁盤緩存信息,進(jìn)入步驟112,反之,進(jìn)入步驟114。
[0067]在步驟114:將接收的數(shù)據(jù)添加到磁盤緩存中,進(jìn)入步驟112。
[0068]以下是磁盤緩存更新模塊所在線程執(zhí)行步驟:
[0069]在步驟200:啟動磁盤緩存更新模塊。
[0070]在步驟201:磁盤緩存更新模塊定期運(yùn)行,選擇需要更新的緩存條目。這里磁盤緩存更新模塊選擇需要更新的緩存條目時,對磁盤緩存信息的訪問同磁盤緩存讀寫模塊之間是互斥的,即當(dāng)磁盤緩存讀寫模塊訪問磁盤緩存信息時,磁盤緩存更新模塊就處于休眠狀態(tài),這樣避免了磁盤緩存讀寫模塊訪問磁盤緩存時CPU被額外的線程占用,由于磁盤緩存讀寫模塊的讀寫互斥粒度比磁盤緩存更新模塊的互斥力度更細(xì),因此磁盤緩存更新模塊所在的線程執(zhí)行優(yōu)先級就比較低,這樣就降低了磁盤緩存更新時對用戶下載請求資源的影響,提高了用戶體驗。磁盤緩存更新模塊選定磁盤緩存更新備選項之后,進(jìn)入步驟202。
[0071]在步驟202:磁盤緩存更新模塊所處線程在瀏覽器處于空閑的時候定期發(fā)起更新請求,進(jìn)入步驟203。
[0072]在步驟203:磁盤更新模塊所處的線程依據(jù)磁盤緩存被選項資源的優(yōu)先級以及磁盤緩存被選項的上次更新時間以優(yōu)先隊列的形式維護(hù)更新被選項。更新時從后臺按照資源在優(yōu)先隊列中的順序順次發(fā)起更新請求,進(jìn)入步驟204。
[0073]在步驟204:磁盤更新模塊接收到更新的數(shù)據(jù)之后,更新磁盤緩存內(nèi)容。然后進(jìn)入步驟201。
[0074]綜上所述,本發(fā)明提供的一種嵌入式瀏覽器的磁盤緩存方法,所述瀏覽器運(yùn)行磁盤緩存讀寫模塊和磁盤緩存更新模塊,磁盤緩存讀寫模塊和磁盤緩存更新模塊并行執(zhí)行,分別在不同的線程或者進(jìn)程中執(zhí)行,對磁盤緩存的訪問采用不同的互斥粒度;所述磁盤緩存讀寫模塊用于網(wǎng)絡(luò)下載請求中磁盤緩存數(shù)據(jù)的讀取和寫入,所述磁盤緩存更新模塊選取備選更新資源,通過結(jié)合資源的優(yōu)先級、資源的本地更新時間建立優(yōu)先隊列來維護(hù)磁盤緩存更新備選資源的更新優(yōu)先級,以一定的時間間隔,在瀏覽器比較空閑的時候從后臺發(fā)起下載請求,依照優(yōu)先級依次更新緩存資源。所述磁盤緩存更新模塊從后臺更新資源時,只是從服務(wù)器端請求更新資源而不將資源傳遞給瀏覽器內(nèi)核渲染。所述資源優(yōu)先級指符合數(shù)字電視業(yè)務(wù)上的特點(diǎn)的資源優(yōu)先級。當(dāng)所述磁盤緩存更新模塊更新磁盤緩存信息時,所述磁盤緩存讀寫模塊與磁盤緩存更新模塊之間對磁盤緩存信息的單個資源互斥訪問。當(dāng)所述磁盤緩存讀寫模塊讀寫磁盤緩存信息時,所述磁盤緩存更新模塊與磁盤緩存讀寫模塊之間對磁盤緩存信息互斥訪問。
[0075]以上所述的【具體實施方式】,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的【具體實施方式】而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種嵌入式瀏覽器的磁盤緩存方法,所述方法包含: 步驟101,啟動第一線程和第二線程,并等待瀏覽器的下載請求事件; 步驟102,當(dāng)瀏覽器接收到下載請求時: 第一線程用于下載請求中磁盤緩存的寫入和讀出; 第二線程以一定的時間間隔,在瀏覽器空閑時從后臺發(fā)起下載請求更新緩存資源; 其中, 所述線程也能夠采用進(jìn)程; 當(dāng)?shù)诙€程更新磁盤緩存信息時,第一線程與第二線程對磁盤緩存信息的單個資源互斥訪問; 當(dāng)?shù)谝痪€程讀寫磁盤緩存信息時,第二線程與第一線程對磁盤緩存信息互斥訪問; 且第二線程的線程執(zhí)行優(yōu)先級比第一線程的低。
2.根據(jù)權(quán)利要求1所述的嵌入式瀏覽器的磁盤緩存方法,其特征在于,所述步驟102進(jìn)一步包含: 步驟102-1)第一線程檢查磁盤緩存是否包含請求資源,若磁盤緩存包含請求資源并且該資源當(dāng)前沒有被第二線程更新,則直接讀取磁盤緩存的內(nèi)容,由瀏覽器內(nèi)核渲染并顯示頁面;反之,直接發(fā)起網(wǎng)絡(luò)下載請求,獲得下載數(shù)據(jù)后寫入到磁盤緩存,下載數(shù)據(jù)交瀏覽器內(nèi)核渲染、顯示; 步驟102-2)第二線程依據(jù)策略選取一定時期內(nèi)的磁盤緩存作為更新的備選項,當(dāng)更新時機(jī)成熟時,從后臺逐一發(fā)起更新備選項的資源下載請求,若通過與服務(wù)器驗證該資源未過期,則更新資源的存儲日期;如果資源已過期,則下載新的資源替代舊的資源,并且更新資源的下載時間為當(dāng)前時間;磁盤緩存更新模塊更新結(jié)束之后,選擇新的更新備選項,等待時機(jī)進(jìn)行下次更新; 其中,所述策略為:選取備選更新資源,通過結(jié)合資源的優(yōu)先級、資源的本地更新時間建立優(yōu)先隊列進(jìn)而維護(hù)磁盤緩存更新備選資源的更新優(yōu)先級,依照優(yōu)先級依次更新緩存資源。
3.根據(jù)權(quán)利要求2所述的嵌入式瀏覽器的磁盤緩存方法,其特征在于,所述步驟102-1)進(jìn)一步包含: 步驟102-1-1)當(dāng)瀏覽器接收到用戶的下載請求時,則進(jìn)入步驟102-1-2);當(dāng)接收到瀏覽器退出請求時,則終止操作; 步驟101-1-2)如果當(dāng)前磁盤緩存中包含請求下載的內(nèi)容時,則阻塞磁盤緩存存儲線程,進(jìn)入步驟102-1-3 ; 步驟102-1-3)瀏覽器讀寫磁盤緩存時是對磁盤緩存的單個記錄互斥的訪問,這樣當(dāng)?shù)诙€程更新磁盤緩存的某條記錄時,第一依然能夠讀寫其它當(dāng)前未被更新的緩存記錄;當(dāng)?shù)谝痪€程不能互斥訪問某條緩存記錄時,進(jìn)入步驟102-1-6,反之進(jìn)入步驟102-1-4 ; 步驟102-1-4,發(fā)起網(wǎng)絡(luò)下載請求,進(jìn)入步驟102-1-6 ; 在步驟102-1-5,第一線程讀取緩存數(shù)據(jù),進(jìn)入步驟102-1-7 ; 步驟102-1-6,根據(jù)HTTP協(xié)議下載接收網(wǎng)絡(luò)數(shù)據(jù),進(jìn)入步驟102-1-7 ; 步驟101-1-7,主線程將讀取的緩存數(shù)據(jù)解析渲染到屏幕上,呈現(xiàn)給用戶,進(jìn)入步驟102-1-1 ; 步驟102-1-8,如果接收到的數(shù)據(jù)在磁盤緩存中已經(jīng)存儲過,則更新磁盤緩存信息,進(jìn)入步驟102-1-7,反之,進(jìn)入步驟102-1-9 ; 步驟102-1-9,將接收的數(shù)據(jù)添加到磁盤緩存中。
4.根據(jù)權(quán)利要求2所述的嵌入式瀏覽器的磁盤緩存方法,其特征在于,所述步驟102-2)進(jìn)一步包含: 步驟102-2-1,第二線程定期運(yùn)行,選擇需要更新的緩存條目;第二線程選擇需要更新的緩存條目時,對磁盤緩存信息的訪問同第一線程是互斥的,即當(dāng)?shù)谝痪€程訪問磁盤緩存信息時,第二線程就處于休眠狀態(tài);第一線程的讀寫互斥粒度比第二線程的互斥力度更細(xì),因此第二線程的線程執(zhí)行優(yōu)先級就比較低;第二線程選定磁盤緩存更新備選項之后,進(jìn)入步驟 102-2-2 ; 步驟102-2-2,第二線程在瀏覽器處于空閑的時候定期發(fā)起更新請求,進(jìn)入步驟102-2-3 ; 步驟102-2-3,第二線程依據(jù)磁盤緩存被選項資源的優(yōu)先級以及磁盤緩存被選項的上次更新時間以優(yōu)先隊列的形式維護(hù)更新被選項,更新時從后臺按照資源在優(yōu)先隊列中的順序順次發(fā)起更新請求,進(jìn)入步驟102-2-4 ; 步驟102-2-4,第二線程接收到更新的數(shù)據(jù)之后,更新磁盤緩存內(nèi)容。
5.一種嵌入式瀏覽器的磁盤緩存系統(tǒng),其特征在于,所述系統(tǒng)包含: 瀏覽器運(yùn)行磁盤緩存讀寫模塊,用于網(wǎng)絡(luò)下載請求中磁盤緩存數(shù)據(jù)的讀取和寫入;和 瀏覽器磁盤緩存更新模塊,用于選取備選更新資源,通過結(jié)合資源的優(yōu)先級、資源的本地更新時間建立優(yōu)先隊列,該隊列用于維護(hù)磁盤緩存更新備選資源的更新優(yōu)先級,以一定的時間間隔,在瀏覽器比較空閑的時候從后臺發(fā)起下載請求,依照優(yōu)先級依次更新緩存資源; 其中,所述磁盤緩存讀寫模塊和磁盤緩存更新模塊并行執(zhí)行,且兩個模塊分別在不同的線程或者進(jìn)程中執(zhí)行,所述磁盤緩存讀寫模塊和磁盤緩存更新模塊對磁盤緩存的訪問采用不同的互斥粒度。
6.根據(jù)權(quán)利要求5所述的嵌入式瀏覽器的磁盤緩存系統(tǒng),其特征在于,所述瀏覽器運(yùn)行磁盤緩存讀寫模塊進(jìn)一步包含: 檢查及判決子模塊,用于檢查磁盤緩存是否包含請求資源,若磁盤緩存包含請求資源并且該資源當(dāng)前沒有被第二線程更新,則啟動讀取子模塊;若磁盤緩存不包含請求資源,則啟動下載請求子模塊; 讀取子模塊,用于直接讀取磁盤緩存的內(nèi)容,由瀏覽器內(nèi)核渲染并顯示頁面; 下載請求子模塊,用于直接發(fā)起網(wǎng)絡(luò)下載請求,獲得下載數(shù)據(jù)后啟動寫入子模塊;和 寫入子模塊,用于將獲得的下載數(shù)據(jù)寫入到磁盤緩存,并下載數(shù)據(jù)交瀏覽器內(nèi)核渲染、顯不O
7.根據(jù)權(quán)利要求5所述的嵌入式瀏覽器的磁盤緩存系統(tǒng),其特征在于,所述瀏覽器磁盤緩存更新模塊進(jìn)一步包含: 更新備選項選擇就排序子模塊,用于選取一定時期內(nèi)的磁盤緩存作為更新的備選項,通過結(jié)合更新備選項的資源的優(yōu)先級、資源的本地更新時間建立優(yōu)先隊列進(jìn)而維護(hù)磁盤緩存更新備選項包含的資源的更新優(yōu)先級;和 更新子模塊,用于當(dāng)更新時機(jī)成熟時,從后臺逐一發(fā)起更新備選項的資源下載請求,若通過與服務(wù)器驗證該資源未過期,則更新資源的存儲日期;如果資源已過期,則下載新的資源替代舊的資源,并且更新資源的下載時間為當(dāng)前時間。
【文檔編號】G06F12/08GK104424116SQ201310364090
【公開日】2015年3月18日 申請日期:2013年8月19日 優(yōu)先權(quán)日:2013年8月19日
【發(fā)明者】胡琳琳, 段虎才, 張武, 郭志川 申請人:中國科學(xué)院聲學(xué)研究所, 北京中科智網(wǎng)科技有限公司