我正在尝试做一些FirefoxOS应用程序,但我还没有看到任何简单的方法来存储本地数据。我听说过IndexedDB,但它看起来太复杂了。还有其他选择吗?如果没有,是否有任何关于它的简单教程?
我已经考虑过存储和恢复远程数据(做一个croos域请求),但是我遇到了一些权限问题。有关于FirefoxOS的XHR的任何教程吗?
感谢。
答案 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,您也可以与其他应用共享该数据,还可以授予其他应用在数据存储中写入的权限。
你可以点这个链接。
只是为了使用数据存储,您的应用需要经过认证。
navigator.getDataStores('mystore').then((store)=>{
store[0].getLength().then((ln)=> console.log(ln))
})