日期:2014-05-16  浏览次数:20566 次

ajax请求嵌套的问题。
直接上代码吧,内嵌的两个ajax请求相互依赖对方的返回结果,如何处理?  

  $.getJSON("/js/jsonData/list.php", function (data) {
  var classId = data.classId ;
  var cityId = data.cityId;
   
  $.getJSON("/js/jsonData/class.php",{classId :classId }, function (data1) {
  var className = data1.name;
  //需要使用 cityName做一些逻辑...  
  }

  $.getJSON("/js/jsonData/city.php",{cityId :cityId }, function (data1) {
  var cityName= data1.name;
  //需要使用 className 做一些逻辑...  
  }

  });

另外,嵌套太多的问题,有没有好办法解决? 比如里面还有再嵌ajax请求,这样代码有点难看了。

------解决方案--------------------
只能嵌套了!!!
------解决方案--------------------
相互依赖的设计肯定是有问题的,第一个返回的函数肯定是没法执行的。
如果是需要两个都返回结果后才执行逻辑,可以类似这样
function fo(){if(!(!r1 && !r2 ))...}

两个ajax的回调函数里都是直接 执行fo ,让fo自己来判断,只有两个值都返回了,才执行逻辑