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的检查以确保该元素不存在。
有意义吗?
答
将时间戳或序列号与消息相关联。从服务器返回的XML将具有从时间t0到时间t1的消息。在页面上显示之后,以某种方式将最后显示的消息的时间戳存储在浏览器中(本例中为t1)。当下一组消息到达时,您只需显示id> t1的那些消息。
implementation-of-running-commentary-on-any-ongoing-event是一个类似的问题,我在那里给出了一个端到端的解决方案策略。你可能会发现它很有帮助。
锄头我可以使用JavaScript来获得div的ID? document.getElementById是唯一的选择吗?我想使用聊天的div作为根,而不是文档对象。那可能吗? – 2011-05-25 11:09:13