在滚动div中保留x行数

时间:2018-05-25 15:09:19

标签: javascript html

不确定如何标题这个问题,但基本上我将服务器进程的输出流式传输到Web浏览器并将其放在一个名为result in html

的变量中
<script type="text/javascript" charset="utf-8">
    $(document).ready(function() {
        namespace = '/socket';
        var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port + namespace);
        socket.on('my_response', function(msg) {
            document.getElementById('result').innerHTML += msg.data;
            });
</script>
<div id="result"></div>

我遇到的挑战最终是如果进程运行的时间足够长,浏览器会崩溃,假设该变量太大。我想保留250行,并在删除超过250行的任何内容时不断更新。

有办法做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以将文本拆分为单独的行,删除超出限制的所有行,然后再次设置文本。它看起来像这样:

    socket.on('my_response', function(msg) {
        var lineBreak = '<br>'; // or whatever you're using to delineate lines
        var currentText = document.getElementById('result').innerHTML + msg.data;
        var lines = currentText.split(lineBreak); // split your text into lines
        lines = lines.slice(-250); // only keep the most recent lines
        document.getElementById('result').innerHTML = lines.join(lineBreak);
    });