2014-09-26 61 views
1

我是混合移動porpgramming的初學者。使用Angular JS,Twitter的離線Web應用程序引導

我們的要求是構建一個離線Web應用程序,可以在筆記本電腦/桌面上工作,並最終使用PhoneGap框架使應用程序在平板電腦/智能手機上運行。

我們決定使用AngularJS,用於UI框架的Twitter Bootstrap和使用.Net作爲Web服務器的Rest API。

我們最關心的是Web應用程序以離線模式存儲數據的大小。 HTML5 Web Storage具有5 MB的限制,並且已棄用HTML5 Web SQL數據庫。我們將使用PhoneGap SQLLite數據庫在平板電腦/智能手機中進行離線存儲。

我的問題是如下:

1)如何評估數據庫行(數據)需要被存儲在HTML5 Web存儲的大小?

2)假設數據大小超過5MB,那麼在web應用程序中以離線模式存儲數據的替代選項是什麼?

回答

0

你應該看看IndexDB,這可以讓你請求你需要多少空間。有一個Shim可以在WebSQL上運行,以防萬一你在safari上運行。

http://www.w3.org/TR/IndexedDB/

我可以使用信息http://caniuse.com/#feat=indexeddb

在手機的差距,我不知道存儲限制是相同的,但我不使用這個所以不能確認。但我懷疑它會限制設備在應用上的位置。

如果PhoneGap的WebSQL接口映射到SQLLite引擎並且不依賴於OS瀏覽器實現,那麼使用IndexDB也可以與Shim一起使用,因此對於設備沒有特殊的代碼。 (我強烈建議,雖然測試的早期!)

+0

我會研究indexedDB。不過,我想評估數據庫的數據大小是否遠低於5 MB。可以使用什麼方法來查找存儲在HTML5 Web存儲中的數據庫中的數據是否消耗少於5 MB的存儲空間。我是否編寫POC,在HTML5 Web Storage中保存數據庫行並查找數據大小,並與最大數據行數相乘? – Siv 2014-09-26 15:27:02

+0

不要忘記你也可以使用壓縮,如果需要的話。 – Dreamwalker 2014-09-26 15:31:23

+0

http://pieroxy.net/blog/pages/lz-string/index.html – Dreamwalker 2014-09-26 15:31:54

0

我beleive我需要寫一個程序來從數據庫中的數據,將其存儲在本地存儲,然後使用存儲使用評估存儲的大小

alert(1024 * 1024 * 5 - unescape(encodeURIComponent(JSON.stringify(localStorage))).length);