使用Javascript </script>加载没有缓存的外部<script>

时间:2013-02-15 15:24:15

标签: javascript jquery

我想将一个外部javascript文件加载到页面中,并确保它没有缓存。我无法访问php,因此我无法在文件名后生成随机字符串。

在PHP中,脚本如下所示:

<script src="http://site.com/cool.js?<?php echo $randomnumber; ?>"></script>

有没有办法只使用javascript做这样的事情?

4 个答案:

答案 0 :(得分:15)

使用jQuery的getScript而不是脚本标记。

$.getScript("http://example.com/cool.js");

或纯JavaScript

var scr = document.createElement("script");
scr.src = "http://example.com/cool.js" + "?ts=" + new Date().getTime();
document.getElementsByTagName("head")[0].appendChild(scr);

答案 1 :(得分:5)

只需将随机字符串附加到脚本的src,就像使用PHP一样。为此,您需要使用JS注入<script>标记。

var s = document.createElement('script');
s.type = 'text/javascript';
s.src = 'path/to/file?' + new Date().getMilliseconds();

document.getElementsByTagName('head')[0].appendChild(s);

答案 2 :(得分:1)

当然,只需在DOM中插入脚本标记,JS就会生成值,例如

var d = new Date.getTime();
$('head').append('<scri' + 'pt src="http://....?cachebuster=' + d + '"></scr' + 'ipt>');

答案 3 :(得分:1)

您可以尝试<meta http-equiv="Cache-Control" content="no-store" />。还有另一张票说明了这一点:stackoverflow