javascript - 从 javascript 读取实时日志文件

标签 javascript jquery ajax

我正在使用以下代码从不断增长的文本日志文件中读取数据。

setInterval(call, 1000);

function call() {
  $.ajax({
    type: "GET",
    url: "GenNumber.txt",
    dataType: "text",
    success: function(data) {
      readdata(data);
    },
  });
}

我的查询是,ajax 是否在每次调用中读取完整的文件或上次调用中添加的(新)行。如果每次调用都读取整个文件,则当文件大小越来越大时,它可能会崩溃。有没有办法只读取上次调用的新行并在文件停止增长时停止程序。

谢谢

最佳答案

您可以将 headers 参数用作 ajaxsettings 参数。 () 函数设置 Range HTTP header 来限制您接收的数据。

一些例子:

bytes=9500-

将在偏移量 9500 处开始发送数据。

bytes=-500

将发送最后 500 个字节。 这要求 HTTP 服务器支持范围(大多数都支持)。

Range header 记录在 RFC 7233 中.

以您的示例代码为例:

$.ajax({ 
        type: "GET", 
        url: "GenNumber.txt", 
        dataType: "text", 
        success: function (data) { readdata(data); }, 
        headers: {
            "Range" : "bytes=-500"
        }
    });

关于javascript - 从 javascript 读取实时日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35451918/

相关文章:

javascript - 为什么我的获取对象属性值的循环不起作用?

javascript - 将 html 表格导出为 word 文件并更改文件方向

php - 更新页面上的数据而不刷新

php - 防止多次执行 JavaScript 函数

javascript - Laravel Ajax 调用整个页面

javascript - 如何重构一个很长的 else if 语句?

javascript - 如何通过 Javascript 停用部分 html 代码

javascript - 使用 Canvas 撤消/重做绘画程序

jquery - MVC Ajax数组post方法不起作用

javascript - 如何在 javascript 生成的元素中设置名称区分大小写的属性