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