或者你可以自己控制
$(function(){$('body').addClass('doc-ready')})
var thingsToLoad = ['blabla.js','blublu.js','weee.js'];
var launch = function(){
// do whatever you want to do after loading is complete
// this will be invoked after dom ready.
// objectCollection will have everything you loaded.
// and you can wrap your js files in functions, and execute whenever you want.
}
var loadTester = (function() {
var loadCounter = 0,
loadEnds = thingToLoad.length; // total number of items needs to be loaded
return function() {
loadCounter += 1;
if (loadCounter === loadEnds) {
if ($('body').hasClass('doc-ready')) {
launch();
} else {
/* if body doesnt have ready class name, attach ready event and launch application */
$(function() {
launch();
});
}
}
}
}());
$.each(thingsToLoad, function(i) {
$.ajax({
url : thingsToLoad[i],
mimeType : 'application/javascript',
dataType : 'script',
success : function(data) {
loadTester();
}
});
});
将您的文件添加到thingsToLoad数组中,最后它将被迭代并在成功后加载,它将 init
loadTester。
loadTester将检查thingsToLoad数组的长度,当加载的文件数与文件长度匹配并且 dom 处于就绪状态时,它将launch().
如果您只是加载 html 文件或文本文件,您可以将它们(data在 ajax 函数中)传递到loadTester那里并在那里累积(在像那些loadCounter和这样的私有 var 中loadEnds),并将累积的数组或对象传递给launch()