我正在进行简单的php聊天,我需要在一个div中刷新消息。我尝试使用jquery加载函数,但它使计算机变慢。
是否有简单的ajax刷新,像facebook这样的聊天内容?
感谢。
答案 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,则删除最旧的元素。