Die*_*ego 7 javascript jquery asynchronous
我正计划在页面加载时异步从我的服务器获取几个JS文件.我知道Jquery函数"getScript",但这只能得到1个脚本.有什么方法可以指定从服务器获取一批脚本时要执行的回调吗?
我想过做这样的事情:
$.getScript(script1, function() {
$.getScript(script2, function() {
$.getScript(script3, function() {
...
...
});});....});
Run Code Online (Sandbox Code Playgroud)
但这会按顺序加载脚本,我希望这些请求可以并行完成.
作为一个更普遍的问题取代了这个,加载N个资源(CSS,图像,脚本等)的最佳方法是异步指定在加载所有资源时要执行的单个回调?
更新:除此之外,我需要在文档准备好后执行回调(由$(document).ready事件发出信号).有没有实现这个目标?
你需要getScript
连续调用3次,传递一个回调,增加一个计数器,如果计数器是,则调用真正的回调3
.
您可以创建一个简单的包装函数来执行此操作:
function getScripts(names, callback) {
var received = 0;
var realCallback = function() {
received++;
if (received === names.length)
$(callback);
};
for (var i = 0; i < names.length; i++)
$.getScript(names[i], realCallback);
}
Run Code Online (Sandbox Code Playgroud)
(编辑在文档准备好时调用回调)
你可以这样称呼它:
getScripts([ "script1", "script2", "script3" ], function() { ... });
Run Code Online (Sandbox Code Playgroud)