日期:2014-05-17  浏览次数:20761 次

如何判断ajax操作执行完成
用jquery的getJSON获取ajax数据,代码:
$.getJSON("/Dept.do",{},
  function(json) {
  $(json).each(function(i){
  do some.........
  });
  set();
  }
);
代码中set()是我想在ajax操作执行完成后运行的,但它不等ajax执行完就运行了
要怎么做能让ajax执行完紧接着就运行set方法?

------解决方案--------------------
jquery是默认异步的,可以添加一个参数:async: false 
ext默认是异步的,实现同步要重写api
我用的是prototype

JScript code

new Ajax.Request(url, {
            parameters : paras,
            asynchronous : false,
            onSuccess : function(response) {
                var json = response.responseText.evalJSON(true);
                if (json.result) {
                    ret = true;
                }
            }
        });

------解决方案--------------------
jquery的同步,你试试吧。
JScript code

 $.ajax({   
            type:"POST",  
            url:"Venue.aspx?act=init",  
            dataType:"html",  
            asyn:false,
            success:function(result){   
               f1();         
               f2();  
            }  
             failure:function (result) {   
                alert('Failed');   
            },  
    }