2014-09-26 62 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);