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

ajax请求后台,过段时间没响应
我用ajax请求后台asp.net页面,获取数据,开始一段时间可以正常获取数据,不过过段时间再去请求数据就没有任何反应,重启iis后可以正常获取,我检查过后台数据没有问题,但是就不知道问什么过一段时间就不行了

//获取车辆的信息,经纬度
function getCarInfor(car_id_array,car_num_array)
{  
  var url = '../ServiceForm.aspx?webAction=personalLocation&userIdArray='+car_id_array+'&carNumArray='+escape(car_num_array);
  WS_carInfor(url);
}

//ajax请求
var xmlhttpitte; //xmlhttp请求对象
var browserflag = 0; //浏览器标识
function WS_carInfor(url)
{
  //判断是否是火狐浏览器
  if (isFirefox = navigator.userAgent.indexOf("MSIE") > 0) {
  browserflag = 0
  }
  var data;
  //if (xmlhttpitte == null) {
  //判断是否是IE浏览器
  if (window.ActiveXObject) {
  try {
  xmlhttpitte = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (e1) {
  xmlhttpitte = new ActiveXObject("Msxml2.XMLHTTP");
  }
  }
  else if (window.XMLHttpRequest) {
  xmlhttpitte = new XMLHttpRequest();
  }
   
  //XMLHTTP请求 
  xmlhttpitte.open("POST", url, false);
  xmlhttpitte.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
  xmlhttpitte.onreadystatechange = (browserflag != 1) ? (response) : (response());
  xmlhttpitte.send(null);
}
//处理结果
function response() {
  if (xmlhttpitte.readyState == 4) {
  if (xmlhttpitte.status == 200) { 
  var result = xmlhttpitte.responseText;
  if(result.length>4)
  {
  parseCarInforData(result);
  } 
  }
  } 
}

//处理json数据信息
function parseCarInforData(result) {
  var objlist = Ext.util.JSON.decode(result);
  var obj = null;
  for (var i = 0; i < objlist.length; i++) { 
  //处理结果
  }
  objlist = null;
}

------解决方案--------------------
试试url拼接一个随机参数试试
------解决方案--------------------
简单地使用XMLHTTP实现ajax是不对的。你可能需要首先建立一个“池”,将请求排队;然后另外一个(而且是唯一的一个)定时执行的程序去把所有请求打包在一起去访问服务器端。当你测试是否可以同时发送一大堆并发的ajax请求时,其实经常会丢许多消息。