【发布时间】:2013-06-08 14:59:16
【问题描述】:
我创建了一个约会网站,我在其中使用了一对一的聊天应用程序,例如 facebook。当一个用户向另一个用户发送任何消息时,它会显示在他们的弹出聊天框中,但我已经使用 ajax 完成了此操作。我使用javascript setInterval 函数在每个间隔中运行。但我认为流程不是优化的。我不想每次都向服务器发出不必要的请求,而是只在该用户有新消息时触发。有没有其他方法可以做到这一点,或者像 facebook、gmail 这样的大网站使用的任何其他协议?
【问题讨论】:
-
通常的方法是设置您的服务器以保持连接打开,直到它有数据要发送。这就是 gmail 所做的(或至少曾经做过;不确定它是否仍然如此)。基本思想是:发出 AJAX 请求,如果数据可用,服务器立即发送数据,否则尽可能保持请求打开。当客户端取回数据时,它会立即发送一个新的请求。
标签: php javascript ajax