8

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

我考虑过存储和恢复远程数据(执行 croos 域请求),但我遇到了一些权限问题。有没有关于 FirefoxOS 的 XHR 的教程?

谢谢。

4

4 回答 4

7

我能找到的最好的 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 演示

于 2013-04-23T22:02:56.287 回答
2

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

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

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

于 2013-05-20T18:09:47.983 回答
1

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

于 2013-04-24T14:41:00.977 回答
0

您可以通过使用数据存储在 Firefox Os 中使用 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))
})
于 2017-08-03T11:59:53.037 回答