asg*_*eo1 14 html5 local-storage ios web-sql indexeddb
我正在编写一个我想在iOS应用商店中发布的HTML5应用程序.使用PhoneGap或包装在UIWebView控件中.
我在为应用程序存储数据方面有什么选择,我有点困惑.
是否使用适合在此类应用程序中存储应用程序数据的localStorage,WebSQL或IndexedDB技术?我将存储JSON和XML数据.
请记住,如果用户无意中删除了这些数据,那么他们将失去工作,这显然是我不想发生的.
我知道减轻这种风险的唯一真正方法是将数据同步到"云"或其他在线系统 - 我可以在将来的版本中执行此操作,但现在不能.最初我只想在本地存储数据,如果这是一种合理稳定的做事方式.
根据我的理解,当清除cookie时,浏览器也将清除任何localStorage数据.因此,我可以看到用户意外地执行此操作的规则.
WebSQL看起来很不错 - 用户无法在iOS上无意中删除它.他们实际上必须进入浏览器设置并手动删除数据库.
但是WebSQL的缺点在于,未来我可能不会支持它.
使用IndexedDB,我不清楚何时清除该数据.删除cookie时是否也会删除它,或者Safari设置中的"数据库"选项是否会控制它?
IndexedDB是更好的解决方案,因为它将来会比WebSQL提供更好的支持吗?
还有其他更合适的解决方案我不知道吗?
小智 11
如果你使用PhoneGap(或AppMobi - 我工作的地方)进行包装,你的数据将被分段到该应用程序.用户无法进入Safari并清除浏览器数据/ cookie,并在您的应用中发生这种情况.他们可以删除它的唯一方法是删除应用程序.
我不认为IndexedDB是可用的.Window.localStorage是(5兆,但我认为它可以增长),这是一个KVP系统.
我没有看到他们放弃WebSQL几年.HTML5规范尚未批准,因此事情可能会再次发生变化.
由于您只是存储字符串,因此可以查看像Lawnchair这样的库,它们将使用不同的适配器(localStorage,WebSQL等)来存储您的数据,因为它看起来没有复杂的数据集.
localStorage 除Opera Mini之外的所有当前移动浏览器都支持(又名Web Storage)和WebSQL.
然而,WebSQL在2010年11月被认为是"死亡".该规范上有一个很大的"小心"标签.它写道:
该文档在W3C推荐的轨道上,但规范工作已经停止.规范陷入了僵局:所有感兴趣的实现者都使用了相同的SQL后端(Sqlite),但我们需要多个独立的实现来继续标准化路径.
至于移动浏览器,IndexedDB - 截至2013年12月 - 仅在Android 4.4中支持(意味着没有iOS Safari,Opera Mini /移动或广泛的Android浏览器支持).
有关最新的兼容性表,请参见caniuse.com.
| 归档时间: |
|
| 查看次数: |
7673 次 |
| 最近记录: |