getScript,连续加载多个脚本?

getScript, loading multiple scripts in series?

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

问题一:我用的是下面的代码,发现当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) {
      });
    });
  });
});

谢谢。

I was using the code below, but found that this becomes quite messy when the amount of js files increase. Is there a more clear way of loading multiple .js files?

假设回调中不需要进一步处理,您可以通过递归遍历一组 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']);

Why is the parameter textStatus used as a callback? Using it in this function will always set it to Success, right?

它遵循与其他 jQuery AJAX 方法相同的模式,你是对的,在这种情况下它总是一个成功的响应。

When I only want to execute the next getScript, i could just leave out the parameters and write: jQuery.getScript("url.min.js", function() { Correct?