getScript,连续加载多个脚本?

时间:2019-02-28 15:48:06

标签: javascript jquery getscript

我正在尝试通过GetScript方法加载多个.js文件。 我需要按顺序加载它们,这意味着第一个.js文件需要完全加载,然后才能进入下一个文件。

问题1:我正在使用下面的代码,但是发现当js文件数量增加时,这变得非常混乱。是否有更清晰的方式来加载多个.js文件?

此外,我发现function( data, textStatus, jqxhr )是一个回调函数,该函数在getScript请求成功时执行。可以在该函数中使用参数(data, textStatus, jqxhr),其中:data是.js文件中的数据,textStatus是请求的状态,jqxhr是XMLHttpRequest宾语。

问题2:为什么将参数textStatus用作回调?在此功能中使用它会始终将其设置为成功,对吧?

问题3::当我只想执行下一个getScript时,我可以省略参数并写:jQuery.getScript("url.min.js", function() {对吗?

jQuery.getScript("//url1.com/file1.js", function(data, textStatus, jqxhr) {
  jQuery.getScript("//url2.com/file2.js", function(data, textStatus, jqxhr) {
    jQuery.getScript("//url3.com/file3.js", function(data, textStatus, jqxhr) {
      jQuery.getScript("//url4.com/file4.js", function(data, textStatus, jqxhr) {
      });
    });
  });
});

谢谢。

1 个答案:

答案 0 :(得分:3)

  

我使用下面的代码,但是发现当js文件数量增加时,这变得非常混乱。是否有更清晰的方式来加载多个.js文件?

您可以通过递归遍历URL数组来使它干一点,假设在回调中不需要进一步的处理。像这样:

function getScript(arr, i) {
  i = i || 0;
  jQuery.getScript(arr[i], function() {
    i++;
    arr.length > i && getScript(arr, i);
  });
}
getScript(['//url1.com/file1.js', '//url2.com/file2.js', '//url3.com/file3.js', '//url4.com/file4.js']);
  

为什么将参数textStatus用作回调?在此功能中使用它会始终将其设置为成功,对吧?

它遵循与其他jQuery AJAX方法相同的模式,很正确,在这种情况下,它将始终是成功的响应。

  

当我只想执行下一个getScript时,我可以省略参数并编写:jQuery.getScript(“ url.min.js”,function(){对吗?