我有一个基于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();
});

09-19 22:14