Meta refresh — это метод указания веб-браузеру автоматически обновлять текущую веб-страницу или фрейм через заданный интервал времени с использованием элемента HTML с параметром, установленным на " ", и параметром, задающим интервал времени в секундах. Также можно указать браузеру извлекать другой URL при обновлении страницы, включив альтернативный URL в параметр. Установив интервал времени обновления на ноль (или очень низкое значение), meta refresh можно использовать как метод перенаправления URL .
metahttp-equiv
refresh
content
content
Эта функция была первоначально представлена в Netscape Navigator 1.1 (около 1995 г.) в виде заголовка HTTP и соответствующего meta
элемента HTML HTTP-эквивалентов, что позволяет автору документа сигнализировать клиенту об автоматической перезагрузке документа или переходе на указанный URL-адрес после указанного тайм-аута. [1] Это самый ранний механизм опроса, доступный для веба [ нужна ссылка ] , позволяющий пользователю видеть последние обновления на часто меняющихся веб-страницах, например, на страницах, отображающих результаты футбольных матчей или прогноз погоды .
Использование метаобновления не приветствуется Консорциумом Всемирной паутины (W3C), поскольку неожиданное обновление может дезориентировать пользователей. [2] Метаобновление также ухудшает работу кнопки «Назад» в некоторых браузерах (включая Internet Explorer 6 и более ранние версии), хотя большинство современных браузеров компенсируют это ( Internet Explorer 7 и более поздние версии, Mozilla Firefox , Opera , Google Chrome ).
Существуют законные применения meta-refresh, такие как предоставление обновлений динамическим веб-страницам или реализация навигации, контролируемой сайтом, без JavaScript . Многие крупные веб-сайты используют его для обновления новостей или обновлений статуса, особенно когда зависимости от JavaScript и заголовков перенаправления нежелательны.
Поместите внутрь <head>
элемента, чтобы обновить страницу через 5 секунд:
< meta http-equiv = "refresh" content = "5" >
Перенаправление https://example.com/
через 5 секунд:
< meta http-equiv = "refresh" content = "5; url=https://example.com/" >
Перенаправить https://example.com/
немедленно:
< meta http-equiv = "refresh" content = "0; url=https://example.com/" >
Мета-теги Refresh имеют некоторые недостатки:
Meta refresh использует http-equiv
метатег для эмуляции заголовка Refresh
HTTP , и как таковой может также быть отправлен в качестве заголовка веб-сервером HTTP. Хотя Refresh
он не является частью стандарта HTTP , он поддерживается всеми распространенными браузерами.
Пример HTTP-заголовка перенаправления https://example.com/
через 5 секунд:
Обновить: 5; url=https://www.example.com/
Существуют альтернативы для обоих вариантов использования метаобновления.
Альтернативой является отправка кода статуса перенаправления HTTP , например HTTP 301 или 302. Это предпочтительный способ перенаправления пользовательского агента на другую страницу. Это может быть достигнуто с помощью специального правила на веб-сервере или с помощью простого скрипта на веб-сервере.
Еще одной альтернативой является JavaScript , но она не рекомендуется, поскольку пользователи могли отключить JavaScript в своих браузерах.
Самый простой способ перенаправления JavaScript с использованием onload
свойства тега body
:
< body onload = "window.location = 'http://example.com/'" ><!-- Ваш контент здесь --></ тело >
Альтернативный метод — предоставить устройство взаимодействия, например кнопку, чтобы позволить пользователю выбирать, когда обновлять контент. Другой вариант — использовать технику, например Ajax, для обновления (частей) веб-сайта без необходимости полного обновления страницы, но это также потребует, чтобы пользователь включил JavaScript в своем браузере.
Вы можете обновить веб-страницу с помощью метода JavaScript location.reload . Этот код может быть вызван автоматически при возникновении события или просто когда пользователь нажимает на ссылку. Если вы хотите обновить веб-страницу с помощью щелчка мыши, то вы можете использовать следующий код:
< a href = "javascript:location.reload(true)" > Обновить эту страницу </ a >