javascript聊天显示消息

问题描述:

我正在尝试实现聊天。我想在div中显示消息。我的模型看起来像:javascript聊天显示消息

<div id="chatcontentcontainer"> 
    <div id="messageid"> 
     <div class="sender">sender name</div> 
     <div class="messagebody">message text</div> 
    </div> 
    ..... 
    ..... 
</div> 

和我的JavaScript看起来像:

var messages = responseXML.getElementsByTagName('ChatMessage'); 
var chatContainer = document.getElementById('chatcontentcontainer'); 
for (var i = 0; i < messages.length; i++) 
{ 
    var msg = messages[i]; 
    var x = document.createElement('div'); 
    x.id = msg.children[0].textContent; 
    x.innerHTML = msg.children[1].textContent; 
    chatContainer.appendChild(x); 
    _lastMessageId = x.id; 
} 

这填满了没有发送方信息的消息股利。开始只有消息。 如何更改此项以检查消息是否已显示?你有什么其他建议可以显示消息吗?我对性能很感兴趣,因为这会每5秒刷新一次。

是否有任何其他方式选择msg.children [0]类似msg.children ['Id']而不影响表演?

添加到列表中的每个div都需要使用数据中存在的信息进行注释。例如,如果每个msg都有一个id,则可以为div分配一个child_id_ {x}的标识。

然后,您可以更改您的代码以添加基于id的检查以确保该元素不存在。

有意义吗?

+0

锄头我可以使用JavaScript来获得div的ID? document.getElementById是唯一的选择吗?我想使用聊天的div作为根,而不是文档对象。那可能吗? – 2011-05-25 11:09:13

将时间戳或序列号与消息相关联。从服务器返回的XML将具有从时间t0到时间t1的消息。在页面上显示之后,以某种方式将最后显示的消息的时间戳存储在浏览器中(本例中为t1)。当下一组消息到达时,您只需显示id> t1的那些消息。

implementation-of-running-commentary-on-any-ongoing-event是一个类似的问题,我在那里给出了一个端到端的解决方案策略。你可能会发现它很有帮助。