4

我正在 Django 中做一个项目,并使用 djangos-css ( http://github.com/dziegler/django-css ) 和 Sass ( http://sass-lang.com/ )。Sass 文件在开发中使用 django-css 提供。我想编写一个 JavaScript 例程,它将每隔一秒检索 CSS 资产。这样做的目的是让设计人员可以编辑 Sass 文件,点击保存,并立即在浏览器中查看结果,而无需切换应用程序并点击刷新。

基本上,我需要一种让 JavaScript 强制浏览器重新下载某些文件而不进行页面刷新的方法。这可能吗?

4

2 回答 2

2

最简单的方法通常是在 url 上添加一个唯一的参数,我经常只是使用时间戳

var timestamp = (new Date()).getTime();
url += '?time=' + timestamp;

如果您的请求已经有参数,请小心,那么您需要添加&time=' + timstamp

浏览器无法缓存请求,因为每个请求看起来都是独一无二的。

于 2010-01-30T21:48:23.143 回答
2

并非所有缓存都会使用查询字符串缓存内容。

Steve Souders建议,“……避免可缓存资源的查询字符串”。他发现在这种情况下 5-20% 的请求不会被缓存。特别是查询字符串对于某些缓存失效的 CDN 根本不起作用。

更好的方法是为每个版本生成一个带有 javascript 文件名的 MD5,例如

{path to script file}/filename-{md5 hash}.js

于 2011-12-02T09:28:50.577 回答