当存在异步操作时,异步产生的线程跟主线程是同时往下进行的。
JavaScript有时执行顺序与设想的不符,可通过添加定时器的方法解决。
$(function(){
var funcCount=0;
function One(){
//此处存在一个或多个异步操作,可在线程结束后执行funcCount++
//例如:
$.ajax({
url:"", //需要访问的地址
async:true, //是否异步
contentType:"application/x-www-form-urlencoded", //传入服务器的格式
dataType:"json", //服务器返回的格式
success:function(data){
}
}).always(function(){ //always:无论访问成功或失败后都会执行的操作
funcCount++;
});
}
One();
function Two(){
//该函数执行较快,可又必须要在One结束之后执行
}
var t1 = window.setInterval(checkLoad, 200);
function checkLoad() {
if (funCount >= 1) {
window.clearInterval(t1); //去掉定时器
Two();
}
}
});