AJAX平滑刷新div

时间:2012-03-13 14:54:50

标签: php ajax

我正在进行简单的php聊天,我需要在一个div中刷新消息。我尝试使用jquery加载函数,但它使计算机变慢。

是否有简单的ajax刷新,像facebook这样的聊天内容?

感谢。

1 个答案:

答案 0 :(得分:3)

如果是聊天,最佳解决方案可能不是替换整个DIV,而是简单地将新消息附加到最后。一种更持久的方法是保留一堆500条消息并使用javascript进行先进先出操作。

然后,客户端只需轮询后端以获取新消息,而忽略其余消息。这应该使你的后端和前端快速。

<强>更新

例如,HTML可能如下所示:

<div id="chat">
  <ul id="messages">
    <li><span class="time">12:13</span> User A: Hello Everybody</li>
    <li><span class="time">12:16</span> User B: Hello A!</li>
  </ul>
</div>

然后你会使用某种轮询技术,例如Prototype.js有一个开箱即用的定期更新程序 - http://prototypejs.org/api/ajax/periodicalupdater - 它会向你的后端发送请求以及客户端ID和时间戳。

然后,后端需要查询自上次所选客户端发出请求以来是否有任何更改,并将任何新数据发送回客户端。

然后,客户端可以使用Prototype.js&#39; insert(例如http://bobobobo.wordpress.com/2008/05/22/the-stupidly-brief/)只是将新消息添加到堆栈的末尾。

显然你也可以计算UL中LI元素的数量,如果它大于X,则删除最旧的元素。