Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每1秒发送多个ajax请求_Ajax_Jquery_Httprequest - Fatal编程技术网

每1秒发送多个ajax请求

每1秒发送多个ajax请求,ajax,jquery,httprequest,Ajax,Jquery,Httprequest,我正在尝试像facebook聊天那样聊天:) 我用这个请求就像 这里获取房间用户和房间主体 $('.room_users,.room_body').each(function () { var page = $(this).attr("page"); var room_id = $(this).parents('.room').children('.roomy_id').attr("value") ;

我正在尝试像facebook聊天那样聊天:)

我用这个请求就像

这里获取房间用户和房间主体

$('.room_users,.room_body').each(function () {
                 var page    = $(this).attr("page");
                 var room_id = $(this).parents('.room').children('.roomy_id').attr("value") ;
                 var url     = page+room_id ;
                 window.setInterval(function () { $(this).load(url);}, 200);
         });

Here To Get Room Lists

         $('#room_list').each(function () {
                 var page = $(this).attr("page");
                  var url = page ;
                  window.setInterval(function () {
                      $(this).load(url);
                  }, 60000);
         });
正如您看到的,我的请求每1秒发送一次,但并非所有请求都返回202状态

很多时候它返回404NotFound

有些时间请求每1秒发送两次


而不是每隔一秒钟就向服务器发送请求


它是一种模式,使用一个长时间运行的请求在很短的时间间隔内将数据流传输到浏览器

而不是每隔一秒钟就向服务器发送一次请求


它是一种模式,使用一个长时间运行的请求在很短的时间间隔内将数据流传输到浏览器

如果您的服务器支持WebSocket或任何类似Comet的长轮询形式,请尝试使用一种。同时,为请求添加一个超时,并且只在上一个ajax请求返回或超时后发送下一个ajax请求

function updaterooms() {
  $.ajax({
    type: "GET",
    url: page,
    async: true,
    cache: false,
    timeout:5000,
    success: function(data){
      // do what you need with the returned data...
      setTimeout('updaterooms()',1000);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown){
      $("#error").text("ERROR: " + textStatus + " (" + errorThrown + ")");
      setTimeout('updaterooms()',1000);
    }
  });
}

如果您的服务器支持WebSocket或任何形式的Comet-like长轮询,请尝试使用一种。同时,为请求添加一个超时,并且只在上一个ajax请求返回或超时后发送下一个ajax请求

function updaterooms() {
  $.ajax({
    type: "GET",
    url: page,
    async: true,
    cache: false,
    timeout:5000,
    success: function(data){
      // do what you need with the returned data...
      setTimeout('updaterooms()',1000);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown){
      $("#error").text("ERROR: " + textStatus + " (" + errorThrown + ")");
      setTimeout('updaterooms()',1000);
    }
  });
}