最近在写一些js代码,对于像我这样的,js只是懂一些入门知识,遇到了一些问题。
以前对于js的理解,只是一种很简单的认识,总是把它当做是一种实现某种页面功能的语言,但是最近发现它的多线程也是像java的一样,突然就发现,原来js我还没有入门。在ajax对于js的应用上,它明显就是用了多线程,多线程造成的一些变量未定义,刚开始确实让我惆怅了很长时间,因为当我debug这些代码的时候,也没有办法模拟多线程的情况。例如:
var mrDefJson=‘{’;
function findAllMrDef(){
$.ajax({
url: ctx+"/monitor/monitorBusinessDef/findAllMrDef!findAllMrDef.action",
type: 'POST',
cache: false,
success: function(data){
if (data != null && data.length>0){
for ( var i=0;i<data.length;i++){
//alert(data[i].businessName);
// $("#monitor_rule_id").append("<option value='"+data[i].id+"'>"+data[i].ruleName+"</option>");
mrDefJson += '"'+data[i].id+'":"'+data[i].ruleName+'",'
}
}
// alert(mrDefJson)
if(mrDefJson!=null&& mrDefJson!=''){
mrDefJson = mrDefJson.substring(0, mrDefJson.length-1);
mrDefJson += "}"
mrDefJson = mrDefJson.replace(/[\r\n]/ig, '');
mrDefJson = JSON.parse(mrDefJson);
}
mrid4Page();
}
});
}
alert(mrDefJson);
像上面这种情况,弹出的值可能就不会是我们想要的。