算法偽代碼如下:
[0025]由于一個資源列表的總體更新時間取決于列表中更新最頻繁的那個資源,算法對 一個列表按更新時間從短到長進行枚舉。而給定一個更新時間后,將一個資源放入應用緩 存可節(jié)約的傳輸流量可以表示為L717這條表達式表示,一個資源通過放入應用緩存所節(jié) 省的流量,是由于該資源放入應用緩存后所預期達到的緩存時間與之前默認緩存時間之差 造成的,即某資源放入應用緩存所節(jié)省的流量=(預期緩存時間-該資源配置的緩存時 間)*資源大小上式乘以用戶訪問分布就是總體上所能節(jié)省的流量。因此,對于給定的更新
其中σ是用戶訪問分 布函數(shù)。由此可以枚舉計算所有可能組合的收益(L2-L10)。最后算法選擇收益最大的組合, 即所有benefit(i)中的最大值,并且把它對應的資源集合設置到HTML5應用緩存的 Manifest文件中。
[0026]運行在客戶端瀏覽器的JavaScript庫,包括:
[0027] 1.攔截頁面請求、獲取請求URL的接口。在頁面中調用該接口,可以自動攔截頁面 解析過程中所發(fā)出的所有請求的URL,并且與應用緩存中的資源列表進行比對,如果緩存列 表中有該資源的正則表達式映射,可以自動實現(xiàn)URL的替換,從而避免冗余資源的傳輸。 [0028] 2.與HTML5應用緩存的交互功能。主要包括對緩存資源的查詢、檢測、正則表達式 的比對等等。
[0029]部署方案:
[0030]本工具為開發(fā)者提供完善的部署方案。部署內容分為三步。第一步,在目標頁面中 添加調用JavaScript庫。第二步,生成一個空白頁面作為代理頁,將原來主頁的URL解析到 代理頁面,原來的主頁成為從該代理頁面處請求的一個資源,我們稱這個空白頁面為代理 頁面,因為它可以用來加載原頁面的資源。第三步,運行工具。第一步中調用JavaScript庫, 使得原來的頁面具有攔截URL請求和獲取緩存信息的功能。由于HTML5應用緩存的限制,部 署后的應用頁面需要改為一個自動生成的代理頁面,原頁面作為資源在代理頁面中被請求 (第二步)。這里的第一第二步是程序化的,可以通過工具一鍵自動生成。
[0031] 需要注意的是,原網頁的URL需要重定向為新生成的代理頁面。之所以需要重定 向,是為了解決應用緩存HTML頁面的弊端。這種部署方案更加具有一般性。針對于主頁固定 的網站,部署方案的第二步也可以省略。上述兩種方案都是程序化的,可以由工具一鍵生 成,也可以由開發(fā)者手動調用。
[0032] 與現(xiàn)有技術相比,本發(fā)明的積極效果為:
[0033]本方案借助發(fā)明工具簡單有效地獲取網絡資源信息,通過提前預測時間的方式有 效提高了資源的緩存命中率,節(jié)約訪問時間,提高了移動設備的用戶體驗。
【附圖說明】
[0034]附圖為本發(fā)明的方法流程圖。
【具體實施方式】
[0035] 本節(jié)以北京大學信息科學技術學院網站(http://eecs .pku. edu. cn)給出使用該 緩存方法的實例,其處理方法流程如圖所示。該網站是北京大學信息科學技術學院的門戶 網站,包含學院新聞、通知公告、教務通知、講座信息等模塊。
[0036]首先,在原網頁的HTML文件中添加調用JavaScript庫的命令,提供自動攔截URL解 析請求的任務,并且可以和緩存列表進行交互。
[0037]接下來,生成代理頁面,并將原來主頁的URL解析到代理頁面,原來的主頁成為從 該代理頁面處請求的一個資源。此時訪問原先的URL,如http://eecs.pku.edu.cn,客戶端 先請求代理頁面,然后在代理頁面中會請求原先的所有資源。如果這些資源中有部分URL可 以與資源列表中記錄的正則表達式形成有效映射,之前添加的JavaScript函數(shù)將自動替換 該URL,并且轉而請求緩存資源。
[0038]最后,服務器端自動運行工具。該工具自動抓取并分析頁面,并在服務器端提供和 維護緩存資源列表Manifest,該緩存資源列表包含資源的各種信息,并且通過應用緩存接 口與代理頁面相連接。
[0039]用戶仍然通過原先的URL訪問Web應用,并且擁有更好的體驗效果。
【主權項】
1. 一種基于HTML5應用緩存的移動Web緩存優(yōu)化方法,其步驟為: 1) 針對一設定移動Web應用,服務器端定期爬取該移動Web應用所包含資源信息; 2) 將爬取資源中內容相同但對應不同URL的資源映射為同一資源; 3) 根據(jù)爬取的資源的歷史信息預測每個資源維持不變的時間,選取一組穩(wěn)定的資源配 置到HTML5應用緩存的緩存資源列表Manifest文件中,同時生成一個資源映射文件;該資源 映射文件中保存每一資源與對應URL的映射關系; 4) 設置一化vaScript運行庫;在每一目標頁面中添加該化vaScript運行庫的調用指 令,用于當該客戶端瀏覽器訪問目標頁面時,自動攔截該目標頁面的URL解析請求任務;其 中,目標頁面為該設定移動Web應用的一個頁面,每一目標頁面具有若干資源; 5) 對每一目標頁面生成一代理頁面,將目標頁面的U化解析到對應代理頁面,然后通過 該客戶端瀏覽器訪問一目標頁面時,根據(jù)請求的資源查詢該資源映射文件,然后根據(jù)查詢 結果從該緩存資源列表Manifest文件中讀取匹配的緩存資源加載到該代理頁面。2. 如權利要求1所述的方法,其特征在于,所述資源信息包括資源的大小、資源內容的 MD5值、資源的緩存時間配置情況。3. 如權利要求2所述的方法,其特征在于,從歷史信息中提取每個資源在每個時刻的 MD5值,獲取資源變化情況的時間序列,最后根據(jù)GDM算法預測每個資源維持不變的時間。4. 如權利要求1所述的方法,其特征在于,將爬取資源中內容相同但對應不同URL的資 源映射為同一資源的方法為:首先根據(jù)t-1時刻的正則化的資源列表Ht-i和t時刻的具體資 源列表Rt,生成t時刻的正則化資源列表出;然后將t時刻的正則化資源列表Ht初始化為t-1 時刻的正則化資源列表Ht-i,并將每個資源的狀態(tài)設置為不存在;然后對于資源列表R中的 每一資源r,如果資源列表Ht中沒有資源和資源r對應,則在資源列表Ht中添加關于資源r的 記錄;如果資源列表Ht中有唯一資源和資源r對應,則將資源r映射到資源列表Ht中并重新計 算資源r的正則表達式,如果資源列表Ht中有多個資源和資源r對應,則刪除原有映射,并且 重新在資源列表Ht中添加關于r的記錄。5. 如權利要求1所述的方法,其特征在于,根據(jù)資源的大小、預測維持不變的時間、緩存 配置和移動Web應用本身用戶分布選取一組資源配置到該緩存資源列表Manifest文件中。6. 如權利要求5所述的方法,其特征在于,選取一組資源配置到該緩存資源列表 Manifest文件中的方法為:對于給定緩存資源列表Manifest的更新時間Ti,計算將一個資 源放入應用緩存所節(jié)約的傳輸流量,然后計算每一種應用緩存組合的總收益;最后選擇總 收益最大的組合對應的資源集合設置到HTML5應用緩存的Manifest文件中。7. 如權利要猶臟的方法,其特征在于濃源通過放入應用緩存所節(jié)約的流量=頒期緩存時 間-該資源配置的緩存時間)*資源大??;胃, 聲 , 其中,ο是用戶訪問分布函數(shù)。8. 如權利要求1~7任一所述的方法,其特征在于,服務器端在Manifest文件中的資源 內容發(fā)生變化時更新Manifest文件。
【專利摘要】本發(fā)明公開了一種基于HTML5應用緩存的移動Web緩存優(yōu)化方法。本方法為:1)服務器端定期爬取設定移動Web應用所包含資源信息;2)將內容相同但對應不同URL的資源映射為同一資源;3)選取一組穩(wěn)定的資源配置到緩存資源列表中,同時生成一個資源映射文件;4)設置一JavaScript運行庫;在每一目標頁面中添加該運行庫的調用指令;5)對每一目標頁面生成一代理頁面,將目標頁面的URL解析到對應代理頁面,然后訪問一目標頁面時,根據(jù)請求的資源查詢該資源映射文件,然后根據(jù)查詢結果從該緩存資源列表中讀取匹配的緩存資源加載到該代理頁面。本方法節(jié)約移動Web應用的訪問時間和數(shù)據(jù)流量,提高了移動設備的用戶體驗。
【IPC分類】G06F17/30
【公開號】CN105550338
【申請?zhí)枴緾N201510980489
【發(fā)明人】黃罡, 劉譞哲, 馬鄆, 東帥亮, 梅宏
【申請人】北京大學
【公開日】2016年5月4日
【申請日】2015年12月23日