我正在尝试实施聊天。我想在div中显示消息。我的模型看起来像:
<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;
}
这将使用没有发件人信息的邮件填充div。首先,只有消息。 如何更改此项以检查是否已显示消息?你有任何其他建议来显示消息......我对性能感兴趣,因为这将每5秒刷新一次。
有没有其他方法选择msg.children [0]类似msg.children ['Id']而不会影响性能?
答案 0 :(得分:0)
您添加到列表中的每个div都需要使用数据中存在的信息进行注释。例如,如果每个msg都有一个id,你可以给div一个id为child_id_ {x}。
然后,您可以更改代码以根据ID进行添加检查,以确保该元素不存在。
有意义吗?
答案 1 :(得分:0)
将时间戳或序列号与消息相关联。从服务器返回的XML将具有从时间t0到时间t1的消息。在页面上显示后,以某种方式将最后显示的消息的时间戳存储在浏览器中(在本例中为t1)。当下一组消息到达时,您只需要显示ID为&gt;的消息。 T1
implementation-of-running-commentary-on-any-ongoing-event是一个类似的问题,我在那里给出了端到端的解决方案策略。你可能会发现它很有帮助。