function MultiReady(taskNames,successCB,errorCB){
this.successCB = successCB;
this.errorCB = errorCB;
this.taskNames = taskNames;
this.ret = {};
}
MultiReady.prototype.addTaskReady = function(taskName,value,error){
if(error){
this.errorCB(error,this.ret);//增加数据
}else{
this.ret[taskName] = value;
var i = 0 ,len = this.taskNames.length;
var complete = true;
for( ; i < len ; i ++ ) {
if(!this.ret.hasOwnProperty(this.taskNames[i])){
complete = false;
}
}
if(complete){
this.successCB(this.ret);
}
}
};
使用的时候,是这样的:
var dataReady = new MultiReady(['servicePackages','serviceOrderTimes','domReady'],onReady);
$.get(url,function(){
dataReady.addTaskReady('servicePackages',true);
})
$.get(url,function(){
dataReady.addTaskReady('serviceOrderTimes',true);
})
$(function(){
dataReady.addTaskReady('domReady',true);
});
function onReady(ret){
}