我正在尝试做一些 FirefoxOS 应用程序,但我还没有看到任何简单的方法来存储本地数据。我听说过 IndexedDB,但它似乎太复杂了。还有其他选择吗?如果没有,是否有任何简单的教程?
我考虑过存储和恢复远程数据(执行 croos 域请求),但我遇到了一些权限问题。有没有关于 FirefoxOS 的 XHR 的教程?
谢谢。
我正在尝试做一些 FirefoxOS 应用程序,但我还没有看到任何简单的方法来存储本地数据。我听说过 IndexedDB,但它似乎太复杂了。还有其他选择吗?如果没有,是否有任何简单的教程?
我考虑过存储和恢复远程数据(执行 croos 域请求),但我遇到了一些权限问题。有没有关于 FirefoxOS 的 XHR 的教程?
谢谢。
我能找到的最好的 IndexDB 文档是在 MDN中使用 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 演示
我建议你使用 asyncStorage 而不是 localStorage,它是 localStorage 的异步版本,具有相同的 api 和 IndexedDB 的优点。
您可以查看代码并通过阅读文件的注释了解如何使用它:
https://github.com/mozilla-b2g/gaia/blob/master/shared/js/async_storage.js
播客参考应用程序讨论了 IndexedDB 和 SystemXHR,这是用于执行跨域请求的特权 API: https ://marketplace.firefox.com/developers/docs/apps/podcasts
您可以通过使用数据存储在 Firefox Os 中使用 DataStore,您还可以与其他应用程序共享该数据,您还可以授予其他应用程序在数据存储中写入或不写入的权限。
你可以点击这个链接。
只是为了使用数据存储,您的应用程序需要经过认证。
navigator.getDataStores('mystore').then((store)=>{
store[0].getLength().then((ln)=> console.log(ln))
})