function updateDate{
          var message = "";
  $.getJSON("/manager/groupuserservlet.do?method=userInfUpdate",{"rand":Math.random(),"user_id":user_id,"password":password,"name":name,"nickname":nickname,"mima":mima},
function(json) {
message  = json[0].result ;   
 toLoad(); 
    
     });     
  alert("2");
showmessage(message);   <-----消息提示弹出层}//刷新加载列表信息
function toLoad(){

$.getJSON("/manager/groupuserservlet.do?method=list",{"rand":Math.random()},function(json) {
                                           alert("1");
          加上了等待图
... 百行代码,主要做的是数据计算和DOM元素赋值,
                                        取消等待图 });
}在这一段代码中,toLoad()里面有一个$.getJSON(url , date , callBack , "json"),修改的updateDate方法中也是个$.getJSON(url , date , callBack , "json")方法,我现在要调用updateDate执行一个数据修改,修改后调用toLoad重刷列表,最后报一个弹出窗口告诉执行成功。但问题是,我只要一执行updateDate,就立马走了alert("2")和showmessage方法。然后才走了toLoad()去alert(1),为什么会这样呢?难道javascript不是单线程的顺序执行吗?看了下jquery的源代码,回调函数也应该在执行完后才继续执行啊。
测试浏览器是chrome 18.有没有高人帮我解释一下其中的原理。