【问题标题】:Store data in FirefoxOS在 FirefoxOS 中存储数据
【发布时间】:2013-04-16 21:12:08
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • IndexedDB 并不难。最困难的部分(至少对我而言)是围绕数据库事件构建我的应用程序。

标签: firefox-os


【解决方案1】:

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

【讨论】:

  • 我只是想强调一下上面评论中的一句话:use gaia/shared/asyncStorage,它是一个简单的API,同时具有localStorage的优点(它是简单)和那些 indexedDB(它的高性能)。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      您可以通过使用数据存储在 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))
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-09
        • 2018-08-13
        相关资源
        最近更新 更多