日期:2014-05-18  浏览次数:20431 次

JQuery ajax异步处理批量生成页面的问题
我是使用JQuery ajax异步处理的。并设置了超时时间60分钟(因为服务器端处理时间较长)。在生成500个页面 以内AJAX能够正确接收到服务器传回正确的信息。超过500个页面就无法接收到服务器传回的信息了,但是页面也确实正常的生成了。这种情况如何解决呢!!
下面是AJAX内容


//批量生成新闻

function createNews(classId)
{
  $.ajax({
  type: "POST",
  url: "News.aspx",
  dataType: "text",
  timeout: 600000,
  data: "classId="+classId+"&Event=create&random="+Math.random(),
  success: function(html){
  if(html!="false")
  {
  //处理成功
  $("#btnShow").html("");  
  $("#emStatus").html("<br/><img src='../images/checked.gif' align='absmiddle' />&nbsp;"+html+"<br/>");
  }
  else
  {
  $("#emStatus").html("<br/><img src='../images/unchecked.gif' align='absmiddl'/>&nbsp;页面生成失败请重新生成!<br/>");
  }
  }
});  

}

------解决方案--------------------
客户端与服务器端的连接超时了吧.
------解决方案--------------------
异步的程序程序完全可以处理顺序的流程,其基本思路就是在异步回调中进行顺序处理。例如一次调用仅仅处理100个目标对象,然后返回“是否还有未处理的对象”的信息供回调处理中判断(同时还可以显示操作进度信息),如果有则可以再一次异步处理下100个对象。