javascript - 如何将此ajax代码更改为长轮询

标签 javascript ajax long-polling

<分区>

这是我的 ajax 代码,谁能告诉我如何将此代码更改为长轮询?

这是我的代码:-

var chat = {}
chat.fetchMessages = function () {
  $.ajax({
    url: 'ajax/ajax/chat.php',
    type: 'POST',
    data: { method: 'fetch' },
    success: function(data) {
      $('#chats').html(data);
    }
  }); 
}
chat.interval = setInterval(chat.fetchMessages, 1000);

最佳答案

你必须把 fetchMessage 的下一个调用放在上一个的回调中:

var chat = {}
chat.fetchMessages = function () {
  $.ajax({
    url: 'ajax/ajax/chat.php',
    type: 'POST',
    data: { method: 'fetch' },
    success: function(data) {
      $('#chats').html(data);
      chat.fetchMessages(); // let's do it again
    }
  }); 
}
chat.fetchMessages(); // first call

关于javascript - 如何将此ajax代码更改为长轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15840016/

相关文章:

javascript - Node.js MySQL 查询执行流程

javascript - 包装内容元素会触发内联脚本

ajax - 如何防止 Varnish 缓存 ajax?

ajax - 子表ajax调用中的SelectOneRadio不起作用

PHP 长轮询 - "long"应该有多长?

javascript - 我怎样才能将一个可观察对象变成一个由长轮询可观察对象组成的可观察对象,这些可观察对象在特定值上完成?

javascript - 屏幕锁定时更好地处理 Web 应用程序 Javascript 通知

javascript - 如何隐藏复选框文本

javascript - 如何在 react.js 中允许 CORS?

jquery - Ajax 长轮询