在HTML5 iOS应用程序中安全地存储数据 – localStorage / WebSQL / IndexedDB是否适合?

我正在编写一个我想在iOS应用商店发布的 HTML5应用程序.使用PhoneGap或包装在UIWebView控件中.

对于我的应用程序存储数据,我有什么选择我有点困惑.

在这种类型的应用程序中是否使用适用于存储应用程序数据的localStorage,Websql或IndexedDB技术?我将存储JSON和XML数据.

记住,如果用户无意中删除了这些数据,那么他们将失去工作,这显然我不想发生.

我明白减轻这种风险的唯一真正的方法是将数据同步到“云”或其他在线系统 – 我可以在将来的版本中做到这一点,但不是现在.最初我只是想在本地存储数据,如果这是一个合理的稳定的方式来做事情.

从我的理解,清除cookies时浏览器也会清除任何localStorage数据.所以规则出来,我可以看到用户意外地这样做.

Websql看起来不错 – 用户不能无意中在iOS上删除它.他们实际上必须进入浏览器设置并手动删除数据库.

但是,Websql的缺点在于,未来我可能不会支持这一点.

使用IndexedDB,我不清楚该数据何时被清除.删除Cookie时还会删除,还是Safari设置中的“数据库”选项控制?

IndexedDB是更好的解决方案,因为它将来会比Websql有更好的支持

有没有其他解决方案更适合我不知道?

解决方法

如果您正在将PhoneGap(或AppMobi – 我在哪里工作)包装,那么您的数据被分段到该应用程序.用户无法进入Safari并清除浏览器数据/ Cookie,并在应用程序中发生这种情况.删除它的唯一方法删除应用程序.

我不认为IndexedDB是可以使用的. Window.localStorage是(5兆,但我认为它可以增长),这是一个KVP系统.

我几年没有看到他们丢弃了Websql. HTML5规范尚未批准,所以事情可能会再次改变.

由于您只是存储字符串,您可以查看使用不同适配器(localStorage,Websql等)的“草坪”这样的库来存储您的数据,因为它似乎没有复杂的数据集.

相关文章

HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码