JQuery 只加载页面的最后 n 行

JQuery load only last n lines of a page

本文关键字:最后 加载 JQuery      更新时间:2023-09-26

我在网页中有一个div,我只需要加载文本文件的最后n行。例如:

<div id="contentdiv" style="white-space: pre-wrap;">here comes the output of the logfile</div>
<script>
  $(function() {
    $( "#contentdiv" ).load( "logs/logfile.log" );
  });
</script>

但我只需要日志文件的最后 5 行。

假设行分隔符'n

使用 load 方法将限制您首先加载所有内容,然后删除

尝试

$( "#contentdiv" ).load( "logs/logfile.log", function(response){
    $( "#contentdiv" ).html(response.split("'n").slice(-5).join("'n"));
} );

但这将首先显示所有行,然后仅显示最后 5 行。

所以,你需要先隐藏这个div

$( "#contentdiv" ).hide();
$( "#contentdiv" ).load( "logs/logfile.log", function(response){
    $( "#contentdiv" ).html(response.split("'n").slice(-5).join("'n"));
    $( "#contentdiv" ).show();
} );

另一种选择可能是

$.get( "logs/logfile.log", function(data) {
  $( "#contentdiv" ).html(data.split("'n").slice(-5).join("'n"));
})

这将只加载一次最后 5 行的div。