使用getScripts异步获取JavaScripts

Get JavaScripts asynchronously using getScripts

本文关键字:JavaScripts 获取 异步 getScripts 使用      更新时间:2023-09-26

我在登录页面上异步获得了一些脚本:

        $.when(
                $.getScript("/Scripts/View/scroll-sneak.js"),
                $.getScript("/Scripts/kendo/kendo.custom.min.js"),
                $.Deferred(function (deferred) {
                    $(deferred.resolve);
                })
        ).done(function (res1, res2) {
            if (res1[1] == "success") {
            }
            if (res2[1] == "success") {
            }
            alert('all script loaded...');
        });

我有两个问题:

  1. 我如何在这里利用浏览器缓存,因为getScript总是使用新的脚本
  2. 我怎么能保证这个脚本将适用于同一域上的所有页面呢

欢迎使用替代解决方案。

第一个问题的答案是设置缓存为true。Jquery文档页面还提到了

jQuery.cachedScript = function( url, options ) {
  // Allow user to set any option except for dataType, cache, and url
  options = $.extend( options || {}, {
    dataType: "script",
    cache: true,
    url: url
  });
  // Use $.ajax() since it is more flexible than $.getScript
  // Return the jqXHR object so we can chain callbacks
  return jQuery.ajax( options );
};
// Usage
$.cachedScript( "ajax/test.js" ).done(function( script, textStatus ) {
  console.log( textStatus );
});

对于你的第二个问题:请澄清更多,你想获得什么?