【问题标题】:Make $.getScript("") not add numbers at the end of the request使 $.getScript("") 不在请求末尾添加数字
【发布时间】:2014-11-22 18:41:35
【问题描述】:

我正在使用$.getScript() 从某个地方获取脚本。

function fetch(url){
window.setInterval(function (){
$.getScript(url);
},50000)
}

fetch("http://example.com/script.js");

但是,当我查看 FireBug 开发者控制台时,我发现它添加了额外的 ? 数字。这是输出:

<script async="" src="http://example.com/script.js?7330519448833367000&_=1416681336440">

远程服务器已禁用 ?来自他们的 htaccess 的字符。我需要使用$.getScript("") 来获取远程脚本,但是如何防止添加额外 ?numbers 的功能?

【问题讨论】:

    标签: javascript jquery getscript


    【解决方案1】:

    这是因为当您使用$.getScript() 时,jQuery 将缓存设置为false(默认情况下)。

    来自jQuery documentation

    默认情况下,$.getScript() 将缓存设置为 false。这会将带时间戳的查询参数附加到请求 URL,以确保浏览器在每次请求时下载脚本。

    要禁用缓存,请在 $.getScript 调用之前添加以下内容:

    $.ajaxSetup({
        cache: true
    });
    

    【讨论】:

    • 我应该在哪里包含它,在函数内部还是其他任何地方?
    • 行前$.getScript
    【解决方案2】:

    $.getScript() 试图绕过缓存以始终下载最新文件。数字是时间戳。

    要禁用此功能,您需要设置此属性:

    $.ajaxSetup({
        cache: true
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-22
      • 2021-11-17
      • 2022-01-02
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 1970-01-01
      相关资源
      最近更新 更多