我计划将Sencha Touch用于我公司的应用程序。我读到本地存储在客户端的浏览器上存储数据。我的问题是当我使用Sencha CMD将代码构建到本机应用程序时,本地存储如何工作?什么是本地存储的替代方案,以保持一些数据假设用户详细信息(以便用户不需要总是登录)。
提前谢谢
答案 0 :(得分: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/
虽然如上所述,已弃用,但仍支持Safari等浏览器。是一个与SQL查询和请求一起使用的数据库,并且是异步的。
以下是更多细节:
http://www.w3.org/TR/webdatabase/
http://html5doctor.com/introducing-web-sql-databases/
目前仅支持Chrome。是一个虚拟文件系统,它与IndexedDB
异步工作,但适用于大型文件(视频和音频文件等),但可以很容易地用于存储其他数据。
您可以将任何类型的对象存储在File API中作为Blob(文件)。由于它是虚拟文件系统,您可以使用文件夹进行导航。
您也可以在这里请求存储空间(配额)。
详情:
http://www.html5rocks.com/en/tutorials/file/dndfiles/
http://www.w3.org/TR/FileAPI/
当然有cookies
和IE UserData
,但这些非常有限。
答案 1 :(得分:1)
此示例演示如何将本地存储与Sencha Touch模型对象一起使用:
如果您想要切换&从在线到离线同步数据您可能也对此示例感兴趣: