Автоматическое обновление страницы каждые 30 секунд
У меня есть страница JSP, которая должна отображать статус выполняемых различных заданий. Некоторым из этих заданий требуется время, поэтому для их статуса требуется переход от обработки к завершению.
Хорошо ли иметь функцию javascript, которая обновит страницу каждые 30 секунд или около того? Существуют ли какие-либо последствия для script, который постоянно обновляет страницу?
Другой вариант - иметь кнопку обновления, которая при нажатии будет обновлять страницу.
Ответы
Ответ 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>