使用JavaScript无效浏览器的缓存
-
24-09-2019 - |
题
我做在Django的项目,并使用Django的-CSS( http://github.com / dziegler / Django的CSS )和萨斯( http://sass-lang.com/)。该萨斯文件使用Django的CSS开发服务。我想写一个JavaScript程序,将每隔一秒检索CSS资产。这样做的目的是为了让设计师可以编辑萨斯文件,点击保存,并查看结果在浏览器中直接不用切换应用程序,打的刷新。
基本上我需要JavaScript来强制浏览器重新下载某些文件没有做刷新页面的方式。这是可能的?
解决方案
的最简单的解决方法通常是一个唯一的参数添加到URL,所以经常只是使用时间戳
var timestamp = (new Date()).getTime();
url += '?time=' + timestamp;
只是要小心,如果你的请求已经有了参数,那么你需要添加&time=' + timstamp
代替。
浏览器不能因为每个请求看起来独特缓存请求。
其他提示
不是所有的高速缓存将缓存与查询串的内容。
史蒂夫Souders的建议“...避免对可缓存资源的查询字符串”。他发现,在这种情况下请求的5-20%,不会被缓存。尤其是查询字符串不会在所有的工作与一些的CDN缓存失效。
更好的方法是生成一个MD5为每个释放e.g的JavaScript文件名。
{path to script file}/filename-{md5 hash}.js
不隶属于 StackOverflow