首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每1秒发送多个ajax请求

每1秒发送多个ajax请求
EN

Stack Overflow用户
提问于 2012-02-17 02:14:16
回答 2查看 1.2K关注 0票数 0

我试着像facebook聊天一样聊天:)

我使用这个请求,比如

点击此处获取聊天室用户和roomBody

代码语言:javascript
复制
$('.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状态

它多次返回404 notfound

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-17 03:06:18

如果您的服务器支持websockets或任何形式的Comet,如长轮询,请尝试使用其中一种。同时,为您的请求添加一个超时,并仅在前一个请求返回或超时后发送下一个ajax请求……

代码语言:javascript
复制
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);
    }
  });
}
票数 1
EN

Stack Overflow用户

发布于 2012-02-17 02:24:51

您应该看看Comet,而不是每秒都向服务器发送垃圾邮件请求。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9316690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档