Постоянно добавляйте локальный файл для новых строк, используя Javascript в браузере

У меня есть файл, к которому часто добавляются новые строки. Я хочу создать веб-приложение, работающее в браузере с использованием JavaScript, которое сможет обнаруживать изменения в этом локальном файле и распечатывать новое содержимое, добавляемое в файл.

Мое решение включает в себя использование опроса javascript с помощью setInterval и нового HTML5 File API. Я загружаю файл, используя поле входного файла, а затем опрашиваю размер файла. Каждый раз, когда размер изменяется (в моем случае увеличивается), это указывает на то, что в файл было добавлено новое содержимое. Затем я разрезаю файл с помощью BLOB-объекта и беру только содержимое, которое было добавлено, используя старый размер файла в качестве начала и новый размер файла в качестве конца.

Обычно это работает хорошо со средним интервалом (я использую 500 мс), но мне любопытно, есть ли лучшее решение, потому что это звучит как хак для меня.

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.

Другие вопросы по тегам