如何在很长一段时间内逐步向浏览器显示HTML?

cgp*_*cgp 12 php comet xmlhttprequest

我是否需要传回任何HTTP标头告诉浏览器我的服务器不会立即关闭连接并显示为收到HTML?是否有必要让HTML逐步显示为flush()?

这种技术曾经用于聊天等事情,但我正在考虑将它用于COMET类型的应用程序.

Ale*_*ski 14

长轮询是做这样事情的常用技巧; 简要总结一下,它的工作原理如下:

  1. 客户端将XHR发送到服务器.

    • 如果有数据就绪,服务器立即返回.
    • 如果没有,服务器会保持连接处于打开状态,直到数据可用,然后返回此状态.
    • 如果请求超时,请返回1).
  2. 客户端上运行的页面接收此数据,并使用它执行的操作.

  3. 回到1)

这就是Facebook 实现其聊天功能的方式.

本文还阐述了长轮询的一些误解,并详细说明了这样做的一些好处.

  • 保持我的Facebook在后端使用Erlang处理聊天,以便它可以管理所有打开的连接.Apache/PHP永远无法扩展到那么高. (2认同)