我有一个链接到清单文件的页面。清单文件中有许多 url。通常需要几分钟才能加载所有内容。
如何检查我的页面是否已完成缓存,以便告诉用户“您的文件已缓存。现在可以安全下线了”?
我有一个链接到清单文件的页面。清单文件中有许多 url。通常需要几分钟才能加载所有内容。
如何检查我的页面是否已完成缓存,以便告诉用户“您的文件已缓存。现在可以安全下线了”?
全局触发几个事件,applicationCache
您可以检查以处理此问题。有几种情况需要考虑。
用户的浏览器第一次下载清单时(或者他们在删除 appcache 记录后第一次重新访问该站点时),一旦所有资源下载完毕,applicationCache
就会触发一个事件。cached
如果用户之前访问过该站点,并且浏览器确定清单自上次访问以来没有更改,applicationCache
则将触发一个noupdate
事件,指示用户已准备好离线。
另一方面,如果清单文件已更改,则它将重新下载清单中的所有文件。一旦完成,它将触发一个updateready
事件。然而:
新版本尚未使用。要在不强制用户重新加载页面的情况下“热交换”到新版本,您可以手动调用 window.applicationCache.swapCache() 函数。
在这种情况下,一旦updateready
事件被触发并(可选地)application.swapCache()
被调用,用户就可以离线了。