2

我即将编写一个基于 ajax 的聊天。刷新聊天框的最佳方法是什么?我知道可能性很小,但哪种最适合聊天?

附加:是否可以仅重新加载未读文本?如果有人写了一段文字,则不必刷新整个内容。新消息就足够了。但是可以用ajax和php来完成吗?我不知道怎么做。因此,即使是小费,我也会心存感激……谢谢!

4

1 回答 1

1

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

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

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

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

于 2013-04-17T22:37:57.177 回答