如何防止javascript缓存?查询字符串方法不起作用
How can I prevent javascript caching? Querystring approach isn't working
我看到过其他的方法,附加一个版本号或MD5哈希到JS src查询字符串
e.g. <script src='/script/v1/'></script>
然而,当我推送新版本的网站时,我的JavaScript仍然在多个浏览器(Chrome, Firefox)中被缓存。
这似乎是一个别人已经解决了的大问题,我似乎正在做正确的事情。我怎样才能让它工作?
我添加了日志消息,并确定querystring方法正在工作。很抱歉,你问了这么多不必要的问题。
然而,在研究中,我发现了一些值得提及的要点:
- 其中一篇文章建议使用附加当前时间的查询字符串。您可能不想遵循这个建议,因为您的文件将永远不会被缓存。使用源代码控制版本号或MD5哈希会更好。
- Steve Souders(高性能网站的名人)注意到某些Web代理从不缓存任何带有查询字符串的内容。因此,版本号应该嵌入到文件的路径中,以确保在通过这些代理访问文件时适当地缓存文件。(http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/)
将始终缓存。但是,通过使用版本号(或任何其他变化的字符串),每次都会下载并使用新版本,而忽略之前的版本。
http://thecrmgrid.wordpress.com/2007/10/22/prevent-caching-of-javascript-include-files-during-development/http://davidwalsh.name/prevent-cache1.)确保javascript文件的响应头是正确的,包括expires, cache-control等
2.),您可能需要附加版本,而不是作为查询参数,而是作为文件名的一部分,例如page_v.2.js。例如,如果您正在使用Java,则可以在构建时更改javascript文件名。
相关文章:
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 在JavaScript中拆分日期字符串的更好方法是什么
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 用javascript修复这个JSON对象字符串最干净的方法是什么
- jQuery字符串使用split()方法在空格后拆分字符串
- 使用查询字符串方法清除浏览器缓存
- 使用子字符串方法时应用程序挂起的原因
- 使用字符串方法更改Javascript对象中的DOM元素参数
- 在Javascript中对对象属性执行字符串方法
- 直接访问字符串方法
- 尝试我自己的字符串方法来删除元音
- 对字符串方法的ajax调用不起作用
- 字符串方法精确文本
- 如何在字符串原型扩展方法中使用字符串方法
- 有没有任何字符串方法,能让我把一串数字,转换成一串数字和字母
- 字符串方法
- 在定义新的字符串方法时使用reduce()
- 问题与自定义大写字符串方法,jQuery和Select2
- 使用比较字符串方法或使用==验证密码字段,但两者都不起作用
- 如何防止javascript缓存?查询字符串方法不起作用