dav*_*avy 3 javascript ajax jquery
我正在以异步方式使用JavaScript $ ajax加载一些脚本.我需要它们以某种顺序加载,但此刻它是随机的.
我的代码是:
loadScripts();
function loadScripts() {
getBootStrapperScript(function (callback) {
alert('bootStrapper loaded');
})
getXMLScript(function (callback) {
alert('xml script loaded');
});
getFormScript(function (callback) {
alert('form script loaded');
});
}
function getBootStrapperScript(callback) {
$.ajax({
url: "http://localhost/eSales/scripts/bootStrapper.js",
dataType: "script"
}).done(callback);
}
function getXMLScript(callback) {
$.ajax({
url: "http://localhost/eSales/scripts/LoadXML.js",
dataType: "script"
}).done(callback);
}
function getFormScript(callback) {
$.ajax({
url: "http://localhost/eSales/scripts/LoadForm.js",
dataType: "script"
}).done(callback);
}
Run Code Online (Sandbox Code Playgroud)
你可以看到它在这个jsFIddle中运行
有没有一种优雅的方法可以确保脚本按照定义的顺序加载?
function loadScripts(urls, callback) {
var i = 0;
(function loadNextScript() {
if (i < urls.length) {
$.getScript(urls[i][0]).done(function() {
alert(urls[i][1] + " loaded"); // probably remove in production
++i;
loadNextScript();
});
}
else if (callback) callback();
})();
}
loadScripts([
["http://localhost/eSales/scripts/bootStrapper.js", "bootstrapper script"],
["http://localhost/eSales/scripts/LoadXML.js", "xml script"],
["http://localhost/eSales/scripts/LoadForm.js", "form script"]
], function() { alert('done'); });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1941 次 |
| 最近记录: |