我正在尝试通过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) {
});
});
});
});
谢谢。
答案 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(){对吗?
是