php - 没有定期刷新的 AJAX 聊天?

标签 php html ajax chat

<分区>

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

附加: 是否可以只重新加载未读文本?如果有人写了一篇文章,则不必刷新整个内容。新消息就足够了。但是用ajax和php可以吗?我不知道该怎么做。所以我什至会感谢小费...... 谢谢!

最佳答案

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

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

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

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

关于php - 没有定期刷新的 AJAX 聊天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16070804/

相关文章:

javascript - 仅当ajax调用完成时才在函数中返回值吗?

php - 用于 PHP/Ruby 的 NetBeans IDE

php - 这在 php : -> 中叫什么

javascript - PHP - Curl(存储在 session 中的处理程序)+使用此处理程序的 ajax 请求

html - 如何使用位置 :relative 在 html 中绘制垂直线

ajax - JQuery Ajax 调用通常无法在 Safari 6 上运行

php - 无法看到响应获取请求 laravel phpunit

jquery - Jquery 中的电子邮件输入验证

javascript - 通过 html 按钮执行后退按钮发生的操作

C# MVC 通过 JQuery AJAX 发送对象