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



根据jQuery文档(https://api.jquery.com/jquery.getscript/)使用更灵活的$.ajax()方法,但它不适合我在这里描述(jQuery不能使用ajax加载插件文件之前调用插件函数,因此,给出一种奇怪的结果)

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

$.ajaxSetup({
  cache: true
});

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

或者,您可以定义一个使用more的新方法柔性$.ajax()法。

它不能为我工作,因为它不能保证按顺序加载文件。

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

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

使用$.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!');
    }
});

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

最新更新