Как я могу автоматически перезагрузить веб-страницу, если в течение определенного периода времени на ней не было никаких действий?
javascript
ajax
Умар Адиль
источник
источник
Ответы:
Если вы хотите обновить страницу, если нет активности, то вам нужно выяснить, как определить активность. Допустим, мы обновляем страницу каждую минуту, если кто-то не нажимает клавишу или не двигает мышь. Это использует jQuery для привязки событий:
источник
Это может быть выполнено без javascript, с этим метатегом:
где content = "5" - это секунды, которые страница будет ждать до обновления.
Но вы сказали, что если бы не было активности, какой это будет вид деятельности?
источник
setInterval
, так рад знать, что это существует!Я построил полное решение Javascript, а также не требует jquery. Может быть в состоянии превратить его в плагин. Я использую его для автоматического обновления жидкости, но, похоже, он может вам помочь.
JSFiddle AutoRefresh
источник
Выше будет обновлять страницу каждые 10 минут, если не вызывается resetTimeout (). Например:
источник
На основании принятого ответа arturnt. Это слегка оптимизированная версия, но, по сути, делает то же самое:
Разница лишь в том, что эта версия использует
setInterval
вместоsetTimeout
, что делает код более компактным.источник
1000
если он рассчитывается с помощью60000
?Каждый раз, когда вы перемещаете мышь, он будет проверять, когда вы в последний раз перемещали мышь. Если временной интервал больше 20 минут, он перезагрузит страницу, иначе он обновит последний раз, когда вы двигали мышью.
источник
Автоматическая перезагрузка с целью по вашему выбору. В этом случае цель
_self
устанавливается на себя, но вы можете изменить страницу перезагрузки, просто изменивwindow.open('self.location', '_self');
код на что-то вроде этого примераwindow.top.location="window.open('http://www.YourPageAdress.com', '_self'";
.С подтверждающим сообщением ALERT:
Без подтверждения оповещения:
Код тела - это ЖЕ для обоих решений:
источник
использовать
setInterval
метод JavaScript :источник
источник
Я бы подумал,
activity
будет ли пользователь сосредоточен на окне. Например, когда вы щелкаете из одного окна в другое (например, Google Chrome в iTunes или Tab 1 - Tab 2 в интернет-браузере), веб-страница может отправить обратный вызов со словами «Я не в фокусе!» или «Я в фокусе!». Можно использовать jQuery, чтобы использовать это возможное отсутствие активности, чтобы делать все, что они хотели. Если бы я был на вашем месте, я использовал бы следующий код для проверки фокусировки каждые 5 секунд и т. Д. И перезагружал бы, если бы фокусировки не было.источник
И, наконец, самое простое решение:
С подтверждением оповещения:
Без подтверждения предупреждения:
Код тела - ЖЕ для обоих решений
источник
С текстом подтверждения на странице вместо предупреждения
Так как это еще один метод автоматической загрузки, если он неактивен, я даю ему второй ответ. Этот проще и понятнее.
С подтверждением перезагрузки на странице
Поле подтверждения при использовании с на странице подтверждения
Коды тела для обоих одинаковы
ПРИМЕЧАНИЕ. Если вы не хотите получать подтверждение на странице, используйте Без подтверждения.
источник
Используя LocalStorage для отслеживания последнего времени активности, мы можем написать функцию перезагрузки следующим образом
Затем мы создаем функцию стрелки, которая сохраняет время последнего взаимодействия в миллисекундах (String).
Нам нужно будет прослушать
beforeunload
событие в браузере, чтобы очистить нашуlastinteraction
запись, чтобы не застрять в бесконечном цикле перезагрузки.События активности пользователей, которые нам нужно будет отслеживать, будут
mousemove
иkeypress
. Мы сохраняем время последнего взаимодействия, когда пользователь перемещает мышь или нажимает клавишу на клавиатуреЧтобы настроить нашего финального слушателя, мы будем использовать
load
событие. При загрузке страницы мы используемsetInterval
функцию, чтобы проверить, не истек ли срок действия страницы после определенного периода.источник
Эта задача очень проста, используя следующий код в разделе заголовка HTML
Он обновит вашу страницу через 30 секунд.
источник