Подтвердить что ты не робот

Автоматическое обновление страницы каждые 30 секунд

У меня есть страница JSP, которая должна отображать статус выполняемых различных заданий. Некоторым из этих заданий требуется время, поэтому для их статуса требуется переход от обработки к завершению.

Хорошо ли иметь функцию javascript, которая обновит страницу каждые 30 секунд или около того? Существуют ли какие-либо последствия для script, который постоянно обновляет страницу?

Другой вариант - иметь кнопку обновления, которая при нажатии будет обновлять страницу.

4b9b3361

Ответ 1

Есть несколько решений для этого. Если вы хотите обновить страницу, вам на самом деле не нужен JavaScript, браузер может сделать это за вас, если вы добавите этот тег meta в свой тег head.

<meta http-equiv="refresh" content="30"/>

Браузер будет обновлять страницу каждые 30 секунд.

Если вы действительно хотите сделать это с помощью JavaScript, то вы можете обновлять страницу каждые 30 секунд с помощью location.reload() (docs) внутри setTimeout():

setTimeout(function() {
  location.reload();
}, 30000);

В противном случае, если вам не нужно обновлять всю страницу, а только ее часть, я думаю, что вызов Ajax будет наиболее эффективным способом.

Ответ 2

Просто простая строка кода в разделе главы может обновить страницу

<meta http-equiv="refresh" content="30">

хотя это не функция javascript, это самый простой способ выполнить вышеупомянутую задачу.

Ответ 3

Если вы хотите обновить страницу, которую вы могли бы использовать так, но обновление страницы, как правило, не самый лучший метод, лучше попробовать просто обновить содержимое, которое необходимо обновить.

JavaScript:

<script language="javascript">
setTimeout(function(){
   window.location.reload(1);
}, 30000);
</script>

Ответ 4

Используйте setInterval вместо setTimeout. Хотя в этом случае либо все будет хорошо, но setTimeout по своей сути срабатывает только один раз, когда setInterval продолжается бесконечно.

<script language="javascript">
setInterval(function(){
   window.location.reload(1);
}, 30000);
</script>