1

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

提前谢谢

4

2 回答 2

2

本地存储

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

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

读书:

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

哪个返回value或者null如果在存储中找不到密钥。

可以将其用作对象:

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/

当然,还有cookiesfor IE UserData,但这些都非常有限。

于 2013-06-12T08:21:33.740 回答
1

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

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

于 2014-09-16T23:42:15.733 回答