我正在尝试使用以下语法向我的网站动态添加一些 JavaScript:
$('head').append('<script type="text/javascript" src="js/myjavascript.js"><\/script>');
它加载了,但是当我观察到抛出 chrome 网络选项卡时,我观察到它持有 ?
的请求
例如在这种情况下,JavaScript 的请求 url 是:
http://mywebsite/js/myjavascript.js?_=1406082938676
我不知道最后的数字是多少,没有在任何地方设置它,但我想浏览器无法使用那个数字缓存我的 JavaScript。
有人知道如何在没有该标志的情况下动态添加 JavaScript 吗?
最佳答案
默认情况下,jQuery 会在下划线参数后附加当前时间戳值。这是为了避免脚本被缓存(即每次执行追加时,浏览器都会下载脚本)。
您可以更改此行为并允许缓存。来自 this answer ,您可以像这样添加一个 ajaxPrefilter
:
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
if ( options.dataType == 'script' || originalOptions.dataType == 'script' ) {
options.cache = true;
}
});
关于javascript - 没有时间戳参数的 jQuery 追加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24901051/