设置dwr的回调函数是异步还是同步

dwr的回调函数的执行默认是异步的,即在调用dwr函数以后,如果后面还有js语句,会立刻执行其后的js语句,不会等待dwr函数的回调函数执行完后才去执行其后的js语句。

现在,我们可以通过设置dwr让其同步执行,即做完回调函数以后,再继续执行其后的js。

同步执行设置语句:

   dwr.engine.setAsync(false);

用完某个调用以后,最好还是返回原来的异步执行:

   dwr.engine.setAsync(false);

 

例子:

function check(id,index){
  ...............................      
    if(masterConfId == ""){
     var confID = document.getElementById("confID").value;
     dwr.engine.setAsync(false);
     McuHelpDwrMethod.getCasList(idipArray[0],confID,callback);
     dwr.engine.setAsync(true);                                                      // 执行完回调函数以后,才开始执行这句话
     

  //执行完dwr回调函数以后,才开始执行这句话.

  dwr.util.addOptions('setScreenOneSec'+indexs, data4, "id", "name");
     ..............                                                                 
 } 
  
 function callback(lst){  
    dwr.util.addOptions('setScreenOneSec'+indexs, data3, "id", "name");
        dwr.util.addOptions('setScreenOneSec'+indexs, data5, "id", "name");
    dwr.util.addOptions('setScreenOneSec'+indexs, lst, 'mcu_participant_id', 'mcu_participant_name');
    
 }

posted @ 2012-08-21 15:01  wangle100  阅读(924)  评论(0编辑  收藏  举报