2012-03-13 83 views
-1

我正在做簡單的php聊天,我需要刷新消息在一個div.I嘗試與jquery加載功能,但它使電腦變得緩慢。AJAX平滑刷新div

是否有簡單的ajax刷新,類似Facebook的聊天?

謝謝。

+1

它是如何讓你的電腦變慢? – jeroen 2012-03-13 14:56:38

+0

當有太多的PHP代碼加載時,它會讓它變慢 – user1245311 2012-03-13 15:00:58

+0

您是否嘗試過http://css-tricks.com/dynamic-page-replacing-content? – Milap 2012-03-13 15:01:49

回答

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的插入(例如,http://bobobobo.wordpress.com/2008/05/22/the-stupidly-brief/)來簡單地將新消息添加到堆棧的末尾。

顯然,您也可以計算UL中LI元素的數量,如果它大於X,則刪除最老的元素。