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?
是
我正在尝试通过 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?
是