【问题标题】:HTML5 - Large Blob and persistent local storageHTML5 - 大型 Blob 和持久本地存储
【发布时间】:2013-04-29 18:32:02
【问题描述】:

一直在寻找最新的答案,但我已经走到了尽头:目前有没有办法持久存储大量二进制数据? (一个Blob或或ArrayBuffer,>100MB)

事情似乎正在朝着将 IndexedDB 作为通用解决方案的方向发展,但目前还不是持久的。唯一其他合适的方法似乎是File System API,它在 Chrome 之外没有得到很好的支持。

目前有合理的解决方案吗?

【问题讨论】:

    标签: javascript html persistence indexeddb


    【解决方案1】:

    IndexedDB 可以存储这些数据,这是storing images and files 上的一篇文章。你首先遇到的问题是storage limits

    大多数桌面浏览器最终会允许你想要多少存储空间,但系统会提示用户允许它发生。

    【讨论】:

    • 感谢您的信息。我在多轮搜索中遇到过这篇文章 =) 但是,IndexedDB,AFAIK 还没有 提供持久存储——存储保证在用户手动清除它之前一直存在。我已经运行了一些 Chrome 测试,关闭窗口后数据确实存在,但据我所知,它还没有正式“持久”。
    • 它是持久的,这就是它的重点,当您的域存在时,浏览器将与它关联数据。如果您去更改域或用户卸载那里的浏览器(或通过其他浏览器访问),那么您将遇到问题。
    • 是的,你是对的!谢谢。不知道我之前怎么没找到这个:developer.mozilla.org/en-US/docs/IndexedDB/…
    • @Dan 那篇文章似乎是在将近 12 个月前发表的。在那个时候,IndexedDB 还不是一个最终的规范(Chrome 的支持真的很差)。它现在是 v1 规范,Chrome 对它有很好的支持
    【解决方案2】:

    正如 Slace 建议的那样,IndexedDB 将解决您的问题,但 Safari(尚)不支持它,Chrome 不允许您将 blob 存储在 IndexedDB 中(尚)。

    LargeLocalStorage 项目弥补了这些差距,并在 IE、Chrome、Firefox、Safari 和 Opera 中为您提供了大型持久存储。

    LargeLocalStorage 还使用 Chrome 下的 FilesystemAPI,它实际上被记录为持久性。 Chrome 仍然将 IndexedDB 记录为临时存储 https://developers.google.com/chrome/whitepapers/storage#table

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-12
      • 2015-01-19
      • 2017-08-04
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多