2天我一直在寻找答案,但我无法找到解决问题的好方法。
我正在开发一个Web应用程序,我只能使用标准的前端文件(HTML,CSS,JavaScript(我使用jQuery))。没有与HTML合并的后端脚本。
我想要实现的是在我的HTML中添加<script>
标记,但将时间戳添加为变量,例如:<script type="text/javascript" src="js/javascript.js?c=1421656264439"></script>
。
使用PHP可以很容易地实现,因为您只需添加时间戳和HTML。但由于我必须只使用前端代码,因此添加带有时间戳的script
或link
标记的最佳方法是什么,因此脚本不会从缓存加载?< / p>
由于客户端使用的是Internet Explorer 10,因此我需要一个可以使用它的答案......
有人可以帮帮我吗?
答案 0 :(得分:1)
由于您正在使用jQuery,我建议您这样做:
$.getScript( "js/javascript.js" );
来自jQuery docs:
默认情况下,$ .getScript()将缓存设置设置为false。这会将带时间戳的查询参数附加到请求URL,以确保浏览器在每次请求时都下载脚本。
答案 1 :(得分:1)
我认为它可以解决您的问题:
默认情况下,$ .getScript()将缓存设置设置为false。这会将带时间戳的查询参数附加到请求URL,以确保浏览器在每次请求时都下载脚本。
答案 2 :(得分:1)
动态加载javascript / css。同时加载时添加随机版本。
e.g。 http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
无论如何,我相信你已经知道你在做什么并不是最好的做法。如果有更具体的要求,可以将JS标头设置为无缓存,以用于JS / css文件。可以在使用的HTTP服务器中设置此信息,而无需编程语言。
答案 3 :(得分:1)
在创建元素,设置属性并将其附加到文档类型时,由于某种原因,未在javascript.js
的AJAX调用上设置beforeSend标头。使用$.getScripts('js/javascript.js');
我突然意识到我可以在脚本标签中尝试一个简单的document.write()
。事实证明它就像一个魅力。
我的修复:
<script type="text/javascript">
var _c = new Date().getTime();
document.write('<script type="text/javascript" src="js/javascrtipt.js?c='+_c+'"><\/script>');
</script>
</body>
(我无法相信我之前无法提出这个解决方案)