网站 - 在最终用户系统上存储数据

时间:2014-07-28 22:12:29

标签: caching browser indexeddb fileapi

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

我看了几个选项。现在我正在讨论使用IndexedDB或File API。

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

文件API上的

-Pros: 写入文件系统而不是内部浏览器缓存

关于IndexedDB的-Cons: 浏览器控制的缓存

索引数据库上的

-Pros: 还活着。 好的键/值db。


我也在浏览器中尝试过LocalStorage。阅读本文:Storing Image Data for offline web application (client-side storage database) - 尤其是PouchDB很不错。但!如果用户在发生同步之前清除缓存=数据丢失​​: - (


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

非常感谢你。 / Lars Bingchong

1 个答案:

答案 0 :(得分:0)

文件API W3C spec的最后一次更新是在2014年7月15日 - 仅在两周前撰写本文时发布的。没有提及API已被弃用。事实上,措辞具体是指正在进行的工作'。 MDN reference也没有提及,但是对于规范可能会发生变化,使用前缀等的警告进行了对冲。

根据您的具体要求,LocalStorage最高可达5Mb,而IndexedDB则建立在此基础上,并提供额外的搜索功能。查询。

您还需要确保您的代码和其他资源可以脱机使用,因此您需要application cache。存储在应用程序缓存中的应用程序也将在线运行,因此那里没有冲突。只要发现清单发生了变化,浏览器就会负责更新本地副本。

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