当前位置: 代码迷 >> ASP.NET >> getJSON套getJSON?解决思路
  详细解决方案

getJSON套getJSON?解决思路

热度:7277   发布时间:2013-02-25 00:00:00.0
getJSON套getJSON?
在利用jquery.js的

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

想让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);
});

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的序列化上,而不是在客户端