[英]Append timestamp on src or href attribute with JavaScript
在过去的两天里,我一直在寻找答案,但是找不到解决我问题的好方法。
我正在开发一个只能使用标准前端文件(HTML,CSS,JavaScript(我使用jQuery))的Web应用程序。 没有后端脚本与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文档:
默认情况下,$。getScript()将缓存设置设置为false。 这会将带时间戳的查询参数附加到请求URL,以确保浏览器在每次请求时都下载脚本。
请看看jQuery getScript() 。
我认为这可以解决您的问题:
默认情况下,$。getScript()将缓存设置设置为false。 这会将带时间戳的查询参数附加到请求URL,以确保浏览器在每次请求时都下载脚本。
动态加载javascript / css。 同样在加载时添加随机版本。
例如http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
无论如何,我相信您已经知道自己在做什么并不是最佳实践。 如果有更具体的要求,可以将JS / css文件的HTTP标头设置为no-cache。 无需编程语言即可在使用的HTTP服务器中设置此信息。
在创建元素,设置属性并将其附加到文档类型后,由于某种原因,未在javascript.js
的AJAX调用上设置beforeSend标头。 这也是使用$.getScripts('js/javascript.js');
我突然意识到我可以在script标签内尝试一个简单的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>
(我不敢相信我不能更早提出这个解决方案)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.