【问题标题】:Website - Storage of data on end users system网站 - 在最终用户系统上存储数据
【发布时间】:2014-07-28 22:12:29
【问题描述】:

我面临以下挑战: - 我正在尝试将网站数据保存到最终用户系统的本地存储中。这样他们就可以离线工作。我还希望本地缓存尽可能长时间地可用。就像以某种方式处理/阻止 ctrl-r 和 F5,这样缓存就不会被刷新。 这是因为用户将在现场工作,并且很可能无法访问 Internet。

我查看了几个选项。现在我正在和自己争论是使用 IndexedDB 还是 File API。

-文件 API 的缺点: 它似乎已被弃用:http://lists.w3.org/Archives/Public/public-webapps/2014AprJun/0010.html

-文件 API 的优点: 写入文件系统而不是内部浏览器缓存

-IndexedDB 的缺点: 浏览器控制的缓存

-IndexedDB 的优点: 还活着。 不错的键/值数据库。


我还在浏览器中尝试了 LocalStorage。阅读:Storing Image Data for offline web application (client-side storage database) - 特别是 PouchDB 的东西很好。但!如果用户在同步之前清除缓存 = 数据丢失 :-(


希望你能给我一些好的建议。期待您的来信。

非常感谢。 /拉斯炳冲

【问题讨论】:

    标签: caching browser indexeddb fileapi


    【解决方案1】:

    文件 API 的 W3C spec 的最后一次更新是在 2014 年 7 月 15 日 - 就在撰写本文时两周前。没有提到 API 被弃用。事实上,该措辞专门指“进行中的工作”。 MDN reference 也没有提及,但对规范可能会发生变化、前缀的使用等提出警告。

    根据您的具体要求,LocalStorage 最高可达 5Mb,IndexedDB 在此基础上增加了搜索和查询功能。

    您还需要确保您的代码和其他资产可离线使用,因此您需要application cache。存储在应用程序缓存中的应用程序也将在线运行,因此没有冲突。每当发现清单已更改时,浏览器都会负责更新本地副本。

    如果您担心数据丢失,那么您在离线时几乎无能为力,除非确保用户知道他们不应该做删除数据的事情。在这方面,它很像任何其他本机应用程序。您可以将阴险的 Evercookie 视为可能有帮助的存储介质,但请谨慎使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-14
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      • 2014-06-22
      • 2011-11-09
      相关资源
      最近更新 更多