我有一个文件,它经常添加新行。我想创建一个使用 javascript 在浏览器中运行的 Web 应用程序,该应用程序将能够检测该本地文件的更改并打印添加到该文件的新内容。
我的解决方案包括使用带有 setInterval 的 javascript 轮询和新的 HTML5 文件 API。我使用输入文件字段加载文件,然后轮询文件的大小。每次大小发生变化(在我的例子中是增加)时,这向我表明新内容已添加到文件中。然后,我使用 Blob 对文件进行切片,仅将使用旧文件大小附加的内容作为开始,将新文件大小作为结束。
通常它在平均间隔(我使用 500 毫秒)时效果很好,但我很好奇是否有更好的解决方案,因为这个对我来说听起来有点像 hack。
最佳答案
您可以使用 js-logtail对于以下文件,例如 tail -f :
<head>
<title>habitat parser log viewer</title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="logtail.js"></script>
<link href="logtail.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="header">
js-logtail.
<a href="./">Reversed</a> or
<a href="./?noreverse">chronological</a> view.
<a id="pause" href='#'>Pause</a>.
</div>
<pre id="data">Loading...</pre>
</body>
您甚至不需要服务器端部分,网络服务器(如 apache、lighthttpd)在内部使用 HTTP Range header 处理此问题。
关于javascript - 在浏览器中使用 Javascript 连续跟踪本地文件的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28044799/