我正在编写一个我想在iOS应用商店发布的
HTML5应用程序.使用PhoneGap或包装在UIWebView控件中.
对于我的应用程序存储数据,我有什么选择我有点困惑.
在这种类型的应用程序中是否使用适用于存储应用程序数据的localStorage,Websql或IndexedDB技术?我将存储JSON和XML数据.
记住,如果用户无意中删除了这些数据,那么他们将失去工作,这显然我不想发生.
我明白减轻这种风险的唯一真正的方法是将数据同步到“云”或其他在线系统 – 我可以在将来的版本中做到这一点,但不是现在.最初我只是想在本地存储数据,如果这是一个合理的稳定的方式来做事情.
从我的理解,清除cookies时浏览器也会清除任何localStorage数据.所以规则出来,我可以看到用户意外地这样做.
Websql看起来不错 – 用户不能无意中在iOS上删除它.他们实际上必须进入浏览器设置并手动删除数据库.
使用IndexedDB,我不清楚该数据何时被清除.删除Cookie时还会删除,还是Safari设置中的“数据库”选项控制?
IndexedDB是更好的解决方案,因为它将来会比Websql有更好的支持?
有没有其他解决方案更适合我不知道?
解决方法
如果您正在将PhoneGap(或AppMobi – 我在哪里工作)包装,那么您的数据被分段到该应用程序.用户无法进入Safari并清除浏览器数据/ Cookie,并在应用程序中发生这种情况.删除它的唯一方法是删除应用程序.
我不认为IndexedDB是可以使用的. Window.localStorage是(5兆,但我认为它可以增长),这是一个KVP系统.
我几年没有看到他们丢弃了Websql. HTML5规范尚未批准,所以事情可能会再次改变.
由于您只是存储字符串,您可以查看使用不同适配器(localStorage,Websql等)的“草坪”这样的库来存储您的数据,因为它似乎没有复杂的数据集.