使用JavaScript实时读取txt文件

4

我想知道是否有办法实时从Javascript中读取.txt文件? 我有一个每几秒钟更新一次的日志文件。我想在更新时从该日志文件解析一些数据,并在html中显示它。 我能实时处理吗? 非常感谢大家!


那个日志文件存储在哪里? - slhck
一个鲜为人知的酷炫技巧:如果日志文件在你的电脑上,你可以使用<input type=file>将其上传到js。然后,每次在它上面使用新的FileReader()时,它都会从磁盘重新加载一个新的副本,包括在点击输入后进行的任何更改。 - dandavis
2个回答

7
假设文件在公共访问位置,你可以编写一个JavaScript函数,每几秒钟就发起一次AJAX请求以读取该文件。以下是类似的代码:
function getLog() {
    $.ajax({
        url: 'logfile.txt',
        dataType: 'text',
        success: function(text) {
            $("#containerDiv").text(text);
            setTimeout(getLog, 30000); // refresh every 30 seconds
        }
    })
}

getLog();

谢谢你,Rory!这个文件大约有16 mb...会有问题吗?再次感谢! - Andrei Ion
哇,16Mb太大了,可能会有问题。你应该尝试将请求的数据限制在最多500k左右的范围内。 - Rory McCrossan
当ajax读取时,服务器是否可以在其中添加一些新行? - Andrei Ion
1
也许更好的方法是编写一个服务器端脚本,仅返回已添加的日志文件部分。这样可以将文件大小限制在绝对必要的最小值。 - nirazul
您可以使用HTTP范围头通过指定负数来抓取文件的末尾。 - dandavis
显示剩余4条评论

0

不,你不能使用Javascript读写文件,因为这将是一个严重的安全问题。

但是,在你的情况下,你可以使用一些Ajax调用到服务器端脚本。


6
的确是可能的。请查看W3C上的这份草案,还可以看看这篇文章 - Alberto De Caro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接