繁体   English   中英

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

[英]Can I cache contents loaded by jQuery.getScript()

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

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

$.ajaxSetup({
  cache: true
});

但我需要缓存一些内容并非全部。

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM