使用getScripts异步获取javascripts

时间:2014-10-10 07:46:27

标签: javascript jquery

我在登录页面上异步获取一些脚本。

        $.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. 我如何承诺此脚本可供同一域中的所有页面使用。
  3. 欢迎使用替代解决方案。感谢。

1 个答案:

答案 0 :(得分:1)

回答你的第一个问题是设置缓存为真。 Jquery documentation page也提到了一种方式

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 );
});

关于你的第二个问题:请澄清更多,你想要实现的目标?