没有定期刷新的AJAX聊天?

时间:2013-04-17 21:45:25

标签: php html ajax chat

我准备写一个基于ajax的聊天。 刷新聊天框的最佳方法是什么?我知道几乎没有可能,但最适合聊天?

其他: 是否可以重新加载未读文本?如果有人写文本,那么刷新整个内容就不足为奇了。新的信息就足够了。但它可以用ajax和php完成吗?我不知道怎么做。所以,即使是一个tipp,我也会感激不尽。 谢谢!

1 个答案:

答案 0 :(得分:1)

刷新的频率和要刷新的内容的范围是独立的。使用AJAX,您可以询问服务器是否有任何新消息到达(基于时间戳),并且仅将那些消息附加到已经显示的内容,您不必重新加载整个页面。

关于'定期刷新'的事情:你可以进行短轮询或长轮询。我认为通过'定期刷新'你可以参考短轮询。这基本上是一个计时器,例如在每秒钟,服务器由JavaScript轮询是否有任何新数据要显示。如果是,则发送它,否则回复一条消息,表明没有新内容。

在长轮询中,对服务器进行轮询,如果有,则提供新内容。但是,如果没有新内容,则不要立即回答“没有新内容”,而是保持连接打开,并在有内容发送时回答。这可以通过几种不同的方式实现,理论上可以提供更好的响应时间,但实际上,如果以某种方式实现,它可能导致服务器超时或重新使用资源。

您可以在此处查看长轮询示例:http://www.screenr.com/SNH