javascript - HTML5 : Javascript to force offline cache rebuild?

标签 javascript html offline-caching html5-appcache

按照 html5rocks 的教程,我希望 window.applicationCache.update() 有助于强制重建离线缓存。 (http://www.html5rocks.com/en/tutorials/appcache/beginner/#toc-updating-cache)

目的是让用户点击“更新缓存”按钮。这是因为即使文件(css、img 等)被修改,计算机/平板电脑也不会检查它们是否有更新。留给用户的是旧内容。

这在 JS 中如何完成?

最佳答案

如果您问“客户端应该如何知道文件被修改”,那么答案很简单 - 缓存 list 应该包含一些唯一标识符,当这些文件更新时该标识符也会更新。我用 PHP 生成 list ,并结合使用单调递增的修订号和来自所有缓存文件的 MAX(filemtime) - 当 list 文件与客户端拥有的 list 文件不同时,它将检查所有列出的 list 文件以进行更新.

update() 触发更新检查并下载更新(如果有),但实际上并没有用新的缓存数据替换旧的缓存数据。

swapCache() 会将旧的缓存版本替换为新下载的版本。

但是,此时您的旧 JS 已经创建了您的页面所依赖的所有管道...

我的 html5 应用程序定期调用 update(),当缓存更新被下载时,它只向用户显示一个按钮说“安装更新!”,它只是重新加载页面 - 就是这样新下载的缓存文件会在用户选择时应用,而不会中断他的工作流程。

关于javascript - HTML5 : Javascript to force offline cache rebuild?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12515012/

相关文章:

javascript - 试图让 Telerik ScriptRegistrar 加载 Telerik 脚本和自定义脚本

css - 将 CSS 图像设为链接

javascript - 无法在 javascript slider 中添加指向图像的单独链接

javascript - "DOMException: Entry was not found"将大量响应放入缓存存储时

android - 缓存视频 Firestore

angular - Service Worker 不在离线模式下工作

javascript - 将数据字符串作为参数传递给 HighCharts 的函数

javascript - 同位素排序不起作用

html - 如何在 WordPress 中显示特定帖子的标签

javascript - 让 scrollspy 监视标题以外的其他标签