HTML5离线缓存程序化过期

我有一个使用脱机缓存和清单文件的HTML5应用程序。 触发更新缓存的唯一方法是更改​​服务器上的清单文件。 我正在寻找一种程序化方式来使缓存过期并强制更新。

我经历了规范,在window.applicationCache上寻找一些方法来使缓存过期。 但没有找到任何。 有一个update()方法,但只有在缓存过期时才会更新(即清单文件中有更改)。 所以这没有帮助。

任何人都知道过期应用程序缓存和强制下载的编程方式?


AFAIK, manifest是启动更新的唯一手段。 HTML5 Rocks网站上有一篇文章,讲述了在appCache.status侦听UPDATEREADY状态后,通过立即调用applicationCache.swapCache()以编程方式更新缓存(在manifest更新之后)。

我不确定这是否足够,但它是一个很好的阅读(向下滚动到“更新缓存”) - http://www.html5rocks.com/tutorials/appcache/beginner/


确实,更新仅由“更新”清单文件触发。 但是某些浏览器(FF,chrome)不检查清单文件引用的所有文件。 例如,jpg的不会测试服务器是否有新的。 看起来,浏览器的一般缓存策略影响更新过程。 要强制浏览器检查缓存清单中的所有或部分文件,必须在HTTP标头中用“Cache-Control:no-cache”标记这些文件。

您可以使用Cookie控制更新操作。 如果您有一个解释cookie命令的serverside脚本,您可以强制浏览器通过javascript过时缓存内容。 例如,如果客户端执行具有设置的cookie“cache_clear”的cache.update(),则服务器可以回答响应代码404,其导致浏览器过时应用程序缓存内容。

链接地址: http://www.djcxy.com/p/49757.html

上一篇: HTML5 offline cache programmatic expiration

下一篇: Android apply styles for different screens