将数据存储在FirefoxOS中

时间:2013-04-23 15:13:52

标签: firefox-os

我正在尝试做一些FirefoxOS应用程序,但我还没有看到任何简单的方法来存储本地数据。我听说过IndexedDB,但它看起来太复杂了。还有其他选择吗?如果没有,是否有任何关于它的简单教程?

我已经考虑过存储和恢复远程数据(做一个croos域请求),但是我遇到了一些权限问题。有关于FirefoxOS的XHR的任何教程吗?

感谢。

4 个答案:

答案 0 :(得分:7)

我能找到的最好的IndexDB文档是MDN中的Using IndexDB

还有很多默认的Firefox OS应用程序(gaia),例如图库,使用IndexDB的浏览器。你可以看到它在现实生活中的运作方式。

或者您可以使用更轻量级的window.localStorage API,它就像字典一样。

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

编辑:请注意,不推荐使用localStorage,因为它阻止了主线程。您应该使用gaia/shared/asyncStorage代替。

对于XHR,您可以检查Firefox-OS-Boilerplate-App是否有可用的XHR演示

答案 1 :(得分:2)

我建议你使用asyncStorage而不是localStorage,是localStorage的异步版本,具有相同的api和IndexedDB的好处。

您可以查看代码并了解如何使用它来阅读文件的注释:

https://github.com/mozilla-b2g/gaia/blob/master/shared/js/async_storage.js

答案 2 :(得分:1)

播客参考应用程序讨论了IndexedDB和SystemXHR,它是执行跨域请求的特权API: https://marketplace.firefox.com/developers/docs/apps/podcasts

答案 3 :(得分:0)

您可以使用数据存储在firefox中使用DataStore,您也可以与其他应用共享该数据,还可以授予其他应用在数据存储中写入的权限。

你可以点这个链接。

https://developer.mozilla.org/en-US/docs/Archive/Firefox_OS/API/Data_Store_API/Using_the_Data_Store_API

只是为了使用数据存储,您的应用需要经过认证。

navigator.getDataStores('mystore').then((store)=>{
    store[0].getLength().then((ln)=> console.log(ln))
})