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

getJSON套getJSON?
在利用jquery.js的

$.getJSON("album.ashx", { }, function (data) {
  $.each(data.list, function (i, n) {
  html = html + "<div id=\""+i+\"">bbb</div>"
  });
 
  $("#div1").html(html);

  GetOtherList(i)
});

function GetOtherList(i)
{
  var html="";
  $.getJSON("album.ashx", { }, function (data) {
  $.each(data.list, function (i, n) {
  html = html + "<div>cccca</div>"
  });
 
  $("#"+i).html(html);
  });  
}

想让GetOtherList函数中的html显示,在第一个$.GetJSON生成<div id=i>中..这样,不行..应该如何做??

------解决方案--------------------
$.getJSON("album.ashx", { }, function (data) {
$.each(data.list, function (i, n) {
html = html + "<div id=\""+i+\"">bbb</div>"+GetOtherList(n.GUID)
});
  
$("#div1").html(html);
});

function GetOtherList(i)
{
var html="";
$.getJSON("album.ashx", { }, function (data) {
$.each(data.list, function (i, n) {
html = html + "<div>cccca</div>"
});
return html;
});
}
------解决方案--------------------
这个思路根本就是错的,
首先,如果可以这样嵌套ajax,将会和服务器产生非常多次的http请求,这对服务器的性能会产生很大影响
其次,$.each的每次执行的时间都是很快的,而根据每次循环产生的序号再去ajax请求并很天响应是需要时间的,没办法同步

应该换个思路在服务端生成复合的json的序列化上,而不是在客户端