当前位置: 首页 > 面试题库 >

Ajax长轮询

安泰平
2023-03-14
问题内容

我最近在StackOverflow上问了一个有关我的功能的问题,人们建议我使用Ajax Long
Polling。我花了几天的时间研究该主题,并尝试编写基本的长轮询代码,但是这些代码都没有起作用,而且我什么也做不了。

这是我的基本功能:

    <script language='javascript' type='text/javascript'>
    var interval=self.setInterval("checkformessages()",4000)
    function checkformessages() {
    $('#incomingmessages<?php echo $otherchatuser ?>').load('checkfornewmessages.php?username=<?php echo $username; ?>&otherchatuser=<?php echo $otherchatuser; ?>');
    }
    </script>

有人能够告诉我如何将其转变为基本的长轮询功能,或者甚至直接指向我需要到达的路径。很感谢任何形式的帮助。谢谢!


问题答案:

通常(即,当不使用长时间轮询时),您的JavaScript代码将向您的服务器发出请求,并且服务器将立即返回信息。但是,您的服务器可能并不总是需要立即说些重要的事情。在您的示例(似乎是聊天)中,当您向发出请求时,与您聊天的人可能没有说话checkfornewmessages.php。因此,当您的JavaScript客户端询问服务器所说的内容时,服务器实际上除了“什么都没说”之外没有其他响应。

对于长时间轮询,而不是checkfornewmessages.php立即返回“什么也没说”,您根本不会从中返回,checkfornewmessages.php直到有重要的事情要返回时为止。

换句话说,为了使长时间的轮询工作正常进行,有趣的事情可能是在您checkfornewmessages.php页面的服务器端完成的。您的javascript代码除了联系checkfornewmessages.php并等待其响应外,无需执行任何其他操作。



 类似资料:
  • 问题内容: 我经营一个网站,用户可以在该网站上通过浏览器互相聊天(想想Facebook聊天)。处理现场互动的最佳方法是什么?(现在,我每30秒进行一次民意调查以更新在线用户和新收到的消息,而另一次民意调查则每秒在聊天页面上进行一次以获取新消息。) 我考虑过的事情: HTML5 Web套接字:未使用此功能,因为它不适用于所有浏览器(仅适用于chrome)。 Flash Sockets:没有使用它,因

  • 长轮询在GCP PubSub JS SDK上可用吗? 我希望能够同时处理多个PubSub消息,例如: 这是它将如何在AWS上工作的一个示例: SQS队列包含超过5条消息。 侦听器将在单个中一次获得5条消息。事件

  • 长轮询是与服务器保持持久连接的最简单的方式,它不使用任何特定的协议,例如 WebSocket 或者 Server Sent Event。 它很容易实现,在很多场景下也很好用。 常规轮询 从服务器获取新信息的最简单的方式是定期轮询。也就是说,定期向服务器发出请求:“你好,我在这儿,你有关于我的任何信息吗?”例如,每 10 秒一次。 作为响应,服务器首先通知自己,客户端处于在线状态,然后 —— 发送目

  • 问题内容: 我想知道如何使用ajax push。我从各种Web文章中学到,可以通过使用一些程序(例如COMET,APE(AJAX PUSH ENGINE)等)来获得Ajax push。但是我想知道是否有更简单的使用方法以及使用哪种语言实现ajax推送。因为在我所看到的文章中。他们正在使用Java。我没有学过的:(所以我想知道是否有类似的东西:您服务器中的javascript,它为特定项目设置了一个

  • 问题内容: 我们尝试在我们公司的ERP中实施基于长期轮询的通知服务。与Facebook通知类似。 使用的技术: 在每次循环迭代中,PHP 设置为60秒零1秒。 jQuery用于AJAX处理。 Apache作为Web服务器。 经过近一个月的编码,我们开始生产。部署后几分钟,我们不得不回滚所有内容。事实证明,我们的服务器(8个核心)无法处理20名员工的长时间请求,每个服务器都使用约5个浏览器标签。例如