我有一个基于web的程序,它周期性地从服务器(Node.js和socket.io)接收一行文本消息,并将其附加到滚动DIV中。这些消息是简单的文本;例如,“Input switch failed”。
socket.on('statusMessage', function (newMessage) {
$('#statusMessageDiv').append(newMessage + "<br>");
});
如何在新邮件出现时删除旧邮件,以便将显示的邮件限制在最后200条左右?
最佳答案
将消息包装在一个元素中,对元素进行计数,如果超过200个,则删除最后附加的(第一个):
socket.on('statusMessage', function (data) {
$('<p />', {text : newMessage}).appendTo('#statusMessageDiv');
if ( $('p', '#statusMessageDiv').length > 200 )
$('p', '#statusMessageDiv').first().remove();
});