使用localStorage在SenchaTouch / PhoneGap -App中保存/加载设置,并在表单中显示它们

时间:2011-04-04 12:21:17

标签: javascript cordova local-storage sencha-touch

如果要使用localStorage,应如何在应用中保存/加载设置? 假设我们只想保存用户名和密码。

目前我知道两种选择:

  • 使用具有商店和代理的模型 这似乎有点太“大”,因为你只想存储一个对象。但是您可以在设置FormPanel中轻松使用this.load()。
  • 使用Phonegap或'plain'localStorage 然后你必须使用JSON.stringify和JSON.parse但是你只存储一个对象并且它更容易加载它(在页面刷新之后我使用商店和代理遇到了一些麻烦)。   但是您不能使用this.load,因为您需要加载模型。也许您需要将settingsObject从localStorage“强制转换”为模型并加载此模型!?

哪种方法更好,还是有更好的方法来保存/加载设置并在表单中显示它们?

1 个答案:

答案 0 :(得分:3)

我绝对同意你的看法,使用Sencha Touch模型和商店是有点过分的,以存储一些设置。我建议使用Ext.util.JSON.encode / decode序列化您的设置对象。

注意:您将无法序列化对象的函数成员,更不用说属于其原型链上的对象的属性,因此您将无法序列化和反序列化Ext模型并拥有它当你找回它时工作。您可以做的最好的事情是序列化Ext组件的配置,并在获得配置后通过其构造函数重新构建它。

对于大多数简单设置对象,只需将其序列化并将其存储在本地存储中的密钥中。当您到达您的页面时,请获取设置对象并更新您的表单。更改表单中的设置时,将其写入对象。离开页面时(onbeforeunload),将对象写入localstore。