使用 JavaScript 在 src 或 href 属性上附加时间戳
Append timestamp on src or href attribute with JavaScript
2 天来我一直在寻找答案,但找不到解决问题的好方法。
我正在开发一个只能使用标准前端文件的 Web 应用程序(HTML、CSS、JavaScript(我使用 jQuery)) .没有与 HTML.
合并的后端脚本
我想要实现的是在我的 HTML 中添加一个 <script>
标签,但添加一个时间戳作为变量,例如:<script type="text/javascript" src="js/javascript.js?c=1421656264439"></script>
.
使用 PHP 实现起来会很简单,因为您只需将时间戳与 HTML 一起添加即可。但是由于我必须只使用前端代码,添加带有时间戳的 script
或 link
标记的最佳方法是什么,这样脚本就不会从缓存中加载?
由于客户端使用 Internet Explorer 10,我需要一个适用于该浏览器的答案...
谁能帮帮我?
因为你正在使用 jQuery 我建议你这样做:
$.getScript( "js/javascript.js" );
来自 jQuery 文档:
By default, $.getScript() sets the cache setting to false. This appends a timestamped query parameter to the request URL to ensure that the browser downloads the script each time it is requested.
我认为它可以解决您的问题:
By default, $.getScript() sets the cache setting to false. This appends a timestamped query parameter to the request URL to ensure that the browser downloads the script each time it is requested.
动态加载 javascript/css。同时在加载时添加随机版本。
例如http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
无论如何,我相信你已经知道你在做什么不是最好的做法。如果有更具体的要求,可以将 JS/css 文件的 HTTP header 设置为 no-cache。无需编程语言即可在所使用的 HTTP 服务器中设置此信息。
在创建元素、设置属性并将其附加到文档时,在 javascript.js
的 AJAX 调用中未设置 beforeSend headers一些原因。这也是使用 $.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>
(真不敢相信我没能早点想出这个解决方案)
2 天来我一直在寻找答案,但找不到解决问题的好方法。
我正在开发一个只能使用标准前端文件的 Web 应用程序(HTML、CSS、JavaScript(我使用 jQuery)) .没有与 HTML.
合并的后端脚本我想要实现的是在我的 HTML 中添加一个 <script>
标签,但添加一个时间戳作为变量,例如:<script type="text/javascript" src="js/javascript.js?c=1421656264439"></script>
.
使用 PHP 实现起来会很简单,因为您只需将时间戳与 HTML 一起添加即可。但是由于我必须只使用前端代码,添加带有时间戳的 script
或 link
标记的最佳方法是什么,这样脚本就不会从缓存中加载?
由于客户端使用 Internet Explorer 10,我需要一个适用于该浏览器的答案...
谁能帮帮我?
因为你正在使用 jQuery 我建议你这样做:
$.getScript( "js/javascript.js" );
来自 jQuery 文档:
By default, $.getScript() sets the cache setting to false. This appends a timestamped query parameter to the request URL to ensure that the browser downloads the script each time it is requested.
我认为它可以解决您的问题:
By default, $.getScript() sets the cache setting to false. This appends a timestamped query parameter to the request URL to ensure that the browser downloads the script each time it is requested.
动态加载 javascript/css。同时在加载时添加随机版本。
例如http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
无论如何,我相信你已经知道你在做什么不是最好的做法。如果有更具体的要求,可以将 JS/css 文件的 HTTP header 设置为 no-cache。无需编程语言即可在所使用的 HTTP 服务器中设置此信息。
在创建元素、设置属性并将其附加到文档时,在 javascript.js
的 AJAX 调用中未设置 beforeSend headers一些原因。这也是使用 $.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>
(真不敢相信我没能早点想出这个解决方案)