我可以缓存jQuery.getScript()加载的内容吗?

时间:2015-06-03 20:27:05

标签: javascript jquery ajax file loading

根据jQuery文档(https://api.jquery.com/jquery.getscript/),使用更灵活的$.ajax()方法,但它对我来说不起作用(jQuery cannot load plugin file using ajax before calling the plugin function, thus, gives kind of weird result

  

默认情况下,$.getScript()将缓存设置设置为false。这个   将带时间戳的查询参数附加到请求URL以确保   浏览器每次请求时都会下载脚本。您   可以通过全局设置缓存属性来覆盖此功能   $.ajaxSetup()

$.ajaxSetup({
  cache: true
});

但我需要缓存一些内容,而不是全部。

  

或者,您可以定义一个使用更多的新方法   灵活的$.ajax()方法。

它对我不起作用,因为它不保证按顺序加载文件。

现在这种情况的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:2)

$.getScript({
    url: "foo.js",
    cache: true
})

在jQuery 1.12.0或更高版本上受支持

答案 1 :(得分:1)

$.ajaxdataType: 'script'cache: true一起使用。

$.ajax({
    cache: true,
    url: 'foo.js',
    dataType: 'script', // optional, can omit if your server returns proper contentType for js files.
    success: function () {
        console.log('Hello World!');
    }
});

这假设您的服务器正在响应浏览器缓存文件所需的标头。