【问题标题】:Sencha Touch LOcal Storage on Mobile AppsSencha Touch 移动应用上的本地存储
【发布时间】:2013-06-11 20:05:25
【问题描述】:

我打算将 Sencha Touch 用于我公司的应用程序。我读到本地存储将数据存储在客户端的浏览器上。我的问题是当我使用 Sencha CMD 将代码构建到本机应用程序时,本地存储如何工作?假设用户详细信息(这样用户不需要总是登录),本地存储的替代方案是什么来保留一些数据。

提前谢谢

【问题讨论】:

标签: sencha-touch local-storage


【解决方案1】:

本地存储

是一个非常易于使用的界面,同步。它将字符串(您可以 JSON.stringify 其他 Javascript 对象)存储为键值对,您只需以这种方式使用键设置值:

localStorage.setItem('key', 'value');

阅读:

var value = localStorage.getItem('key');

如果在存储中找不到密钥,则返回 valuenull

可以将其用作对象:

localStorage['key'] = 'value';
var value = localStorage['key'];

但是,这不是推荐的方法。在这种情况下,undefined 将为不存在的项目返回。

更多详情:
http://www.w3.org/TR/2013/PR-webstorage-20130409/
http://diveintohtml5.info/storage.html

索引数据库

这种数据库取代了现在已弃用的Web SQL。它是异步工​​作的,并且由于它使用存储、请求和事务来处理数据,因此有点难以理解。

您可以在IndexedDB 中存储任何类型的对象(Javascript 对象、Blob(文件))。

您也可以申请存储空间。如果您需要超过 5 mb,用户将收到警报(5 mb 未定义,但似乎是大多数浏览器在请求用户许可之前设置的限制)。

有关如何使用它的详细信息,请参见此处:
http://www.w3.org/TR/IndexedDB/
http://www.html5rocks.com/en/tutorials/indexeddb/todo/

网络 SQL

尽管如前所述,它已弃用,但在 Safari 等浏览器中仍受支持。是一个处理 SQL 查询和请求的数据库,并且可以异步工作。

这里有更多详细信息:
http://www.w3.org/TR/webdatabase/
http://html5doctor.com/introducing-web-sql-databases/

文件 API

目前仅支持 Chrome。是一个与 IndexedDB 异步工作的虚拟文件系统,但适用于大文件(视频和音频文件等),但也可以很容易地用于存储其他数据。

您可以在 File API 中将任何类型的对象存储为 Blob(文件)。由于它是一个虚拟文件系统,您可以使用文件夹进行导航。

您也可以在这里申请存储空间(配额)。

详情:
http://www.html5rocks.com/en/tutorials/file/dndfiles/
http://www.w3.org/TR/FileAPI/

当然还有cookies 和IE 的UserData,但这些都非常有限。

【讨论】:

  • 不回答问题,因为它没有显示如何在 Sencha Touch 中使用 localstore。
【解决方案2】:

此示例演示如何将本地存储与 Sencha Touch 模型对象一起使用:

如果您想将数据从在线切换和同步到离线,您可能也对这个示例感兴趣:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多