Динамически обновлять веб-страницу содержимым файла

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

Мне нужно простое решение для динамического отображения на веб-странице содержимого изменяющегося файла (результат некоторых вычислений). Я придумал следующее, которое кажется жизнеспособным решением (наверняка есть лучшие). К сожалению, я не достиг ожидаемого результата, поскольку содержимое output.txt не загружено. Возможно, я упускаю что-то довольно простое.

 <!DOCTYPE html>
<html>
<body>
<script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.3.1.js"></script>
<style>
body {
    font-family: monospace;
}
#target {
    border: 1px solid gray;
    min-height: 20em;
}
</style>

<h2>Yep</h2>

<textarea id="target" cols="60" rows="10">Loading...</textarea>

<script>
var checkInterval = 1; //seconds
var fileServer = "output.txt";
var lastData;

function checkFile() {
    $.get(fileServer, function (data) {
        // Update the text if it has changed
        if (lastData !== data) {
            $( "#target" ).val( data );
            $( "#target" ).animate({
                scrollTop: $( "#target" )[0].scrollHeight - $( "#target" ).height()
            }, 'slow');
            lastData = data;
        }
    });
}

$(document).ready(function () {
    setInterval(checkFile, 1000 * checkInterval);
});

</script> 
</body>
</html>
  

Комментарии:

1. Проверьте консоль вашего браузера на наличие ошибок.

2. Вот новичок в JavaScript. Но почему возникает ошибка $(document). ready(функция () { не определена?

3. Вы включили скрипт jQuery?

4. Да: <тип сценария=»текст / javascript» язык=»javascript» src=» code.jquery.com/jquery-3.3.1.js «></script > (Отредактированный OP) Содержимое файла не загружается (файл находится в том же каталоге, что и HTML)

5. Перезагрузите кэш, и теперь он работает. Приветствия.

Ответ №1:

Этот код может помочь вам динамически извлекать файл.

 function read(){
    jQuery.get('now.txt',function(data){document.write(data);});
}
  

Если вы хотите, чтобы она обновлялась каждые 3 секунды, используйте setInterval

Документация:

http://www.w3schools.com/js/js_timing.asp