(PHP, Ajax)服务器应该如何为客户端注意到某些内容



有一些交互式站点(例如这个:)),可以在不刷新任何内容的情况下注意到事件。例如,当我得到答案时,上面会出现一个红色圆圈。我知道可以通过发送ajax请求来完成,比如大约每 5 秒一个 - 但它会杀死服务器。那么服务器应该如何向客户端发送某些更改?

像 socket.io 这样的解决方案实现了不同的方法来保持客户端的连接,包括:

  • HTML5 Websockets(新的,相当不错,但旧版浏览器不支持)
  • Flash插件
  • (需要Flash插件,没有移动支持)
  • 长轮询(传统 Web 服务的杀手锏)

您可以打开一个 XHR,该 XHR 将保持活动状态,直到服务器具有发送响应的状态更改。

这称为长轮询

最新更新