Я написал небольшой веб-инструмент, который использует ввод файла для чтения постоянно меняющегося файла. Пользователь выбирает его вручную (один раз!) И отслеживает JavaScript, когда он был изменен (время последнего изменения файла и размер файла). Если он изменился, он снова считывает содержимое файла.
Это прекрасно работает во всех браузерах Windows. Но в macOS (протестировано в Safari 10.1.2 и Firefox 51.0.1) обновляется только время последней модификации. Размер файла не обновляется, и кажется, что содержимое файла больше не может быть прочитано. Поэтому я не могу отслеживать изменения файлов в браузерах на macOS.
Но почему? Это ограничение безопасности в macOS?
Пожалуйста, проверьте следующий фрагмент. Выберите файл (например, текстовый файл), посмотрите последнюю измененную временную метку и размер файла, затем измените файл и посмотрите снова, изменился ли размер. В macOS размер файла не меняется.
Нет, пожалуйста, jQuery.
window.addEventListener('load', function() {
window.setInterval(function() {
var logFile = document.querySelector('#file').files[0];
if (logFile) {
document.querySelector('#info').innerHTML = '<br/>' +
(new Date()).toString() + '<br/>Last modified: ' +
logFile.lastModified +
'<br/>Size: ' +
logFile.size;
}
}, 1000);
});
#info {
font-family: Courier;
font-size: 0.9em;
}
<!DOCTYPE html>
<input type="file" id="file" />
<p id="info"></p>