WebAPP動態脫機存儲系統及方法
2023-06-02 16:35:46
專利名稱:WebAPP動態脫機存儲系統及方法
技術領域:
本發明涉及計算機網絡技術領域,尤其涉及一種WebAPP動態脫機存儲系統及方法。
背景技術:
隨著移動網際網路的普及,手持設備被廣泛使用,以及HTML5等Web技術的快速發展,各大公司都在推出自己的WebApp開發框架。WebApp是指基於Web的系統和應用,其作用是向廣大的最終用戶發布一組複雜的內容和功能。從一個簡單的幫助消費者計算汽車租借費用的網頁,到為商業人員和度假者提供全套旅遊服務的大型複雜的WEB站點,都是WebApp。它包括一些完整的WEB站點,WEB站點的專門功能以及在Internet、Intranet或ExtraNet上的信息處理應用。用戶通常使用瀏覽器緩存在用戶磁碟上存儲web單頁,在用戶再次瀏覽的時候已節省帶寬,但即便這樣,依然無法在沒有Internet的情況下訪問Web應用程式。為了讓web應用程式在離線狀態也能被訪問,HTML5通過ApplicationCache提供離線存儲功能。Application Cache使用Manifest文件來指定當前WebApp所需的資源,瀏覽器根據manifest文件的內容來對不同的資源設置不同的策略。當用戶再次瀏覽該網頁時,如果Application Cache中存在該資源,貝U首先從Application Cache中加載,並通過對比本地manifest文件和伺服器上的manifest文件來確定是否需要更新本地Cache的資源。Application Cache本質上是一種靜態的Cache,需求用戶首先在manifest中指定所有需要Cache的資源,而不能根據用戶訪問的情況來Cache資源。在一些情況,開發者可能並不知道其所有的資源,例如用戶上傳的文件,因此此時不能通過manifest來指定。另外,在IE、FireFox等主流瀏覽器中還存在脫機模式,在離線情況下可以使用Cache在本地的網頁。但由於脫機模式是跟正常模式相對立的,因此在脫機模式下,即使網絡是可用的,也不能正常顯示沒有被Cache的外部網頁。
發明內容
本發明的目的在於提供一種WebAPP動態脫機存儲系統及方法,支持離線應用的各類WebAPP,能將用戶訪問的WebAPP資源自動Cache到本地,以確保用戶在離線情況下也能使用該WebAPP。為解決上述問題,本發明提供一種WebAPP動態脫機存儲系統,包括:存儲模塊,用於將用戶訪問過的每個WebAPP的資源Cache到本地保存;加載模塊,用於加載當前WebAPP的資源,加載前先判斷當前WebAPP的資源是否已經被Cache到本地保存,若是,從所述存儲模塊保存的所有資源中加載當前WebAPP的資源;若否,網絡加載當前WebAPP的資源,並調用所述存儲模塊,將當前WebAPP的資源Cache到本地保存;更新模塊,用於在所述加載模塊加載當前WebAPP的資源完畢後,後臺更新所述當前WebAPP的資源到所述存儲模塊中。進一步的,所述存儲模塊包括資料庫單元和緩存單元,所述緩存單元用於將用戶訪問過的每個WebAPP的資源Cache到本地並保存所述每個WebAPP的資源;所述資料庫單元用於標識每個WebAPP的資源及其在所述緩存單元中的位置,建立每個WebAPP的索引信
肩、O進一步的,所述資料庫單元採用SQLITE3資料庫,將每個WebAPP的資源的URL作為關鍵詞來標識每個WebAPP的資源及其在所述緩存單元中的位置。進一步的,所述緩存單元以文件方式保存所述每個WebAPP的資源,同時還保存所述每個WebAPP的http響應信息。進一步的,所述更新模塊通過http協議逐個更新所述當前WebAPP的資源到所述存儲模塊中,並在更新完成後,以JavaScript事件的形式通知所述當前WebApp以切換到新的WebApp環境。相應的,本發明還提供一種WebAPP動態脫機存儲方法,包括以下步驟:所述存儲模塊將用戶訪問過的每個WebAPP的資源Cache到本地保存;啟動當前WebAPP,所述加載模塊判斷當前WebAPP的資源是否已經被Cache到本地保存,若是,從所述存儲模塊保存的所有資源中加載當前WebAPP的資源;若否,網絡加載當前WebAPP的資源,並調用所述存儲模塊,將當前WebAPP的資源Cache到本地保存;當所述加載模塊加載當前WebAPP的資源完畢後,所述更新模塊後臺更新所述當前WebAPP的資源到所述存儲模塊中。與現有技術相比,本發明提供的WebAPP動態脫機存儲系統及方法,通過存儲模塊將用戶訪問過的每個WebAPP的資源Cache到本地保存,然後通過加載模塊脫機加載存儲模塊中的已有WebAPP資源或者網絡加載未Cache存儲的WebAPP資源,再通過更新模塊更新存儲模塊中的WebAPP的資源,能將用戶訪問的WebAPP資源自動Cache到本地,以確保用戶在離線情況下也能使用該WebAPP,可以實現WebApp離線和在線方式的無痕切換,適用於支持離線應用的各類WebAPP。
圖1是本發明一實施例的WebAPP動態脫機存儲系統的架構示意圖;圖2是本發明一實施例的WebAPP動態脫機存儲方法的流程圖。
具體實施例方式本發明中,URL (統一資源定位符,UniformResourceLocator)也被稱為網頁地址,是網際網路上標準的資源的地址;以下結合附圖和具體實施例對本發明提出的WebAPP管理系統及其應用方法作進一步詳細說明。如圖1所示,本發明提供一種WebAPP動態脫機存儲系統,包括存儲模塊11、加載模塊12和更新模塊13。存儲模塊11包括資料庫單元111和緩存單元112,所述緩存單元112用於將用戶訪問過的每個WebAPP的資源Cache到本地並以文件方式保存所述每個WebAPP的資源,同時還保存所述每個WebAPP的http響應信息;所述資料庫單元111用於標識每個WebAPP的資源及其在所述緩存單元中的位置,建立每個WebAPP的索引信息。其中,HTTP響應與HTTP請求相似,由3部分構成,分別是協議和狀態碼、響應頭和響應正文。HTTP響應的第I行表示通信使用的協議及其版本、狀態碼和狀態描述。其中的狀態碼是規定好的;HTTP響應頭中包含了很多關於伺服器端的有用信息,如伺服器的類型、內容類型和長度等信息;響應正文就是用戶在瀏覽網頁時看到的內容,可以包含各種信息,包括文字、圖片和動畫等。在Web框架(Web Frameffork)中,用於標識WebApp的方法有很多,包括使用name、類似域名的ID方式、以及URL等。經過試驗,使用URL方式比較簡潔、方便,故本實施中資料庫單元111採用URL來標識WebApp。在計算機技術中,實現索引查詢的方法很多,有基於文件的,基於資料庫的。其中基於資料庫的比較常見,本實施例中資料庫單元111採用SQLITE3資料庫來保存緩存單元112中存在的WebApp索引以及每個WebApp所包含的資源,並以WebApp的主資源URL作為關鍵詞來標識WebApp,每個WebApp內部使用的資源使用其對應的URL來加以區分,同時還保存了所有資源在緩存單元112中的位置。因此,緩存單元112完成將WebApp資源Cache到本地後,通過資料庫單元111來加以索引,用於加載單元12加載WebApp時查詢需要的資源。加載模塊12用於加載當前WebAPP的資源,加載前先判斷當前WebAPP的資源是否已經被Cache到本地保存,若是,從所述存儲模塊11保存的所有資源中加載當前WebAPP的資源;若否,網絡加載當前WebAPP的資源,並調用所述存儲模塊11,將當前WebAPP的資源Cache到本地保存。本實施例中,加載模塊12加載已經被Cache到本地保存的當前WebAPP的資源時,將當前WebApp主資源的URL作為關鍵詞,從資料庫單元111中找出當前WebApp緩存在緩存單元112的所有資源的位置,接著依照HTML解析過程中按需加載緩存單元112中的資源;加載模塊12通過網絡HTTP加載當前WebAPP的資源時,調用存儲模塊11存儲當前WebApp已經下載的所有資源到緩存單元112中,並隨著HTML解析的進行,繼續存儲後續資源到緩存單元112中,資料庫單元111為存儲到緩存單元112中的當前WebApp資源加以標識和索引。更新模塊13在所述加載模塊加載當前WebAPP的資源完畢後,後臺更新所述當前WebAPP的資源到所述存儲模塊中。本實施例中,所述更新模塊13根據WebApp主資源的URL獲取其所有資源的URL,通過http協議逐個與緩存單元112中的資源對比,如果存在更新則替換當前資源,並在所有資源都更新完成後,以JavaScript事件的形式通知所述當前WebApp用戶可以選擇切換到新的WebApp環境。相應的,如圖2所示,本發明還提供一種WebAPP動態脫機存儲方法,包括以下步驟。S21,所述存儲模塊11將用戶訪問過的每個WebAPP的資源Cache到本地保存;S22,啟動當前 WebAPP ;S23,所述加載模塊判斷當前WebAPP的資源是否已經被Cache到本地保存,若是,執行S24 ;若否,執行S25至S26 ;S24,從所述存儲模塊保存的所有資源中加載當前WebAPP的資源;S25,網絡加載當前WebAPP的資源;S26,調用所述存儲模塊,將當前WebAPP的資源Cache到本地保存;S27,所述加載模塊加載當前WebAPP的資源完畢;S28,所述更新模塊後臺更新所述當前WebAPP的資源到所述存儲模塊中。本實施步驟S21中,存儲模塊11包括資料庫單元111和緩存單元112,所述緩存單元112將用戶訪問過的每個WebAPP的資源Cache到本地,並以文件方式保存所述每個WebAPP的資源,同時還保存所述每個WebAPP的http響應信息;所述資料庫單元111採用URL標識每個WebAPP的資源及其在所述緩存單元中的位置,建立每個WebAPP的索引信息。本實施步驟S24中,加載模塊12加載將當前WebApp主資源的URL作為關鍵詞,從資料庫單元111中找出當前WebApp緩存在緩存單元112的所有資源的位置,接著依照HTML解析過程中按需加載緩存單元112中的資源。本實施步驟S25中,加載模塊12通過網絡HTTP加載當前WebAPP的資源,步驟S26中調用存儲模塊11存儲當前WebApp已經下載的所有資源到緩存單元112中,並隨著HTML解析的進行,繼續存儲後續資源到緩存單元112中,資料庫單元111為存儲到緩存單元112中的當前WebApp資源加以標識和索引。綜上所述,本發明提供的WebAPP動態脫機存儲系統及方法,通過存儲模塊將用戶訪問過的每個WebAPP的資源Cache到本地保存,然後通過加載模塊脫機加載存儲模塊中的已有WebAPP資源或者網絡加載未Cache存儲的WebAPP資源,再通過更新模塊更新存儲模塊中的WebAPP的資源,能將用戶訪問的WebAPP資源自動Cache到本地,以確保用戶在離線情況下也能使用該WebAPP,可以實現WebApp離線和在線方式的無痕切換,適用於支持離線應用的各類WebAPP。顯然,本領域的技術人員可以對發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1.一種WebAPP動態脫機存儲系統,其特徵在於,包括: 存儲模塊,用於將用戶訪問過的每個WebAPP的資源Cache到本地保存; 加載模塊,用於加載當前WebAPP的資源,加載前先判斷當前WebAPP的資源是否已經被Cache到本地保存,若是,從所述存儲模塊保存的所有資源中加載當前WebAPP的資源;若否,網絡加載當前WebAPP的資源,並調用所述存儲模塊,將當前WebAPP的資源Cache到本地保存; 更新模塊,用於在所述加載模塊加載當前WebAPP的資源完畢後,後臺更新所述當前WebAPP的資源到所述存儲模塊中。
2.如權利要求1所述的WebAPP動態脫機存儲系統,其特徵在於,所述存儲模塊包括資料庫單元和緩存單元,所述緩存單元用於將用戶訪問過的每個WebAPP的資源Cache到本地並保存所述每個WebAPP的資源;所述資料庫單元用於標識每個WebAPP的資源及其在所述緩存單元中的位置,建立每個WebAPP的索引信息。
3.如權利要求2所述的WebAPP動態脫機存儲系統,其特徵在於,所述資料庫單元採用SQLITE3資料庫,將每個WebAPP的資源的URL作為關鍵詞來標識每個WebAPP的資源及其在所述緩存單元中的位置。
4.如權利要求2所述的WebAPP動態脫機存儲系統,其特徵在於,所述緩存單元以文件方式保存所述每個WebAPP的資源,同時還保存所述每個WebAPP的http響應信息。
5.如權利要求1所述的WebAPP動態脫機存儲系統,其特徵在於,所述更新模塊通過http協議逐個更新所述當前WebAPP的資源到所述存儲模塊中,並在更新完成後,以JavaScript事件的形式通知所述當前WebApp以切換到新的WebApp環境。
6.一種WebAPP動態脫機存儲方法,其特徵在於,包括: 所述存儲模塊將用戶訪問過的每個WebAPP的資源Cache到本地保存; 啟動當前WebAPP,所述加載模塊判斷當前WebAPP的資源是否已經被Cache到本地保存,若是,從所述存儲模塊保存的所有資源中加載當前WebAPP的資源;若否,網絡加載當前WebAPP的資源,並調用所述存儲模塊,將當前WebAPP的資源Cache到本地保存; 當所述加載模塊加載當前WebAPP的資源完畢後,所述更新模塊後臺更新所述當前WebAPP的資源到所述存儲模塊中。
7.如權利要求6所述的WebAPP動態脫機存儲方法,其特徵在於,所述存儲模塊包括資料庫單元和緩存單元,所述緩存單元用於將用戶訪問過的每個WebAPP的資源Cache到本地並保存所述每個WebAPP的資源;所述資料庫單元用於標識每個WebAPP的資源及其在所述緩存單元中的位置,建立每個WebAPP的索引信息。
8.如權利要求7所述的WebAPP動態脫機存儲方法,其特徵在於,所述資料庫單元採用SQLITE3資料庫,將每個WebAPP的資源的URL作為關鍵詞來標識每個WebAPP的資源及其在所述緩存單元中的位置。
9.如權利要求7所述的WebAPP動態脫機存儲方法,其特徵在於,所述緩存單元以文件方式保存所述每個WebAPP的資源,同時還保存所述每個WebAPP的http響應信息。
10.如權利要求6所述的WebAPP動態脫機存儲方法,其特徵在於,所述更新模塊通過http協議逐個更新所述當前WebAPP的資源到所述存儲模塊中,並在更新完成後,以JavaScript事件的形式通知所述當前WebApp以切換到新的WebApp環境。
全文摘要
本發明提供一種WebAPP動態脫機存儲系統及方法,通過存儲模塊將用戶訪問過的每個WebAPP的資源Cache到本地保存,然後通過加載模塊脫機加載存儲模塊中的已有WebAPP資源或者網絡加載未Cache存儲的WebAPP資源,再通過更新模塊更新存儲模塊中的WebAPP的資源,能將用戶訪問的WebAPP資源自動Cache到本地,以確保用戶在離線情況下也能使用該WebAPP,可以實現WebApp離線和在線方式的無痕切換,適用於支持離線應用的各類WebAPP。
文檔編號G06F17/30GK103186594SQ20111045413
公開日2013年7月3日 申請日期2011年12月29日 優先權日2011年12月29日
發明者呂磊 申請人:盛樂信息技術(上海)有限公司