2

我有一个文件经常附加新行。我想使用 javascript 创建一个在浏览器中运行的 Web 应用程序,该应用程序将能够检测该本地文件上的更改并打印添加到文件中的新内容。

我的解决方案包括使用带有 setInterval 的 javascript 轮询和新的 HTML5 File API。我使用输入文件字段加载文件,然后轮询文件的大小。每次大小更改(在我的情况下增加)时,这向我表明新内容已添加到文件中。然后,我使用 Blob 对文件进行切片,并且仅将使用旧文件大小附加的内容作为开始,将新文件大小作为结束。

一般来说,平均间隔(我使用 500 毫秒)效果很好,但我很好奇是否有更好的解决方案,因为这对我来说听起来有点像 hack。

4

1 回答 1

-1

您可以将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 标头处理此问题。

于 2015-08-30T08:58:23.170 回答