Meta refresh

Meta refresh is a method of instructing a web browser to automatically refresh the current web page or frame after a given time interval, using an HTML meta element with the http-equiv parameter set to "refresh" and a content parameter giving the time interval in seconds. It is also possible to instruct the browser to fetch a different URL when the page is refreshed, by including the alternative URL in the content parameter. By setting the refresh time interval to zero (or a very low value), meta refresh can be used as a method of URL redirection.

Usability

Use of meta refresh is discouraged by the World Wide Web Consortium (W3C), since unexpected refresh can disorient users.[1] Meta refresh also impairs the web browser's "back" button in some browsers (including Internet Explorer 6 and before), although most modern browsers compensate for this (Internet Explorer 7 and higher, Mozilla Firefox, Opera, Google Chrome).

There are legitimate uses of meta-refresh, such as providing updates to dynamic web pages or implementing site controlled navigation of a website without JavaScript. Many large websites use it to refresh news or status updates, especially when dependencies on JavaScript and redirect headers are unwanted.

Examples

Place inside <head> to refresh page after 5 seconds:

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

Redirect to http://example.com/ after 5 seconds:

<meta http-equiv="refresh" content="5; url=http://example.com/">

Redirect to http://example.com/ immediately:

<meta http-equiv="refresh" content="0; url=http://example.com/">

Drawbacks

Meta refresh tags have some drawbacks:

Alternatives

Meta refresh uses the http-equiv meta tag to emulate the Refresh HTTP header, and as such can also be sent as a header by an HTTP web server, although it should be noted that Refresh is not part of the HTTP standard.

Alternatives exist for both uses of meta refresh.

For redirection

An alternative is to send an HTTP redirection status code, such as HTTP 301 or 302. It is the preferred way to redirect a user agent to a different page. This can be achieved by a special rule in the Web server or by means of a simple script on the Web server.

JavaScript is another alternative, but not recommended, because users might have disabled JavaScript in their browsers.

The simplest way of JavaScript redirect using the onload property of the body tag:

<body onload="window.location = 'http://example.com/'">

<!-- Your content here -->

</body>

For refresh

An alternative method is to provide an interaction device, such as a button, to let the user choose when to refresh the content. Another option is using a technique such as Ajax to update (parts of) the Web site without the need for a complete page refresh, but this would also require that the user enable JavaScript in their browser.

To redirect noscript browsers

Using this method, browsers that do not understand JavaScript can be redirected to special pages that do not expect/require users to support JavaScript.

For example, if the current URL is news.php, the browser redirects the user to news-nojs.php.

<noscript><meta http-equiv="refresh" content="0; url=news-nojs.php"></noscript>

This method has no alternatives, except making pages that work in noscript browsers.

References

  1. Core Techniques for Web Content Accessibility Guidelines 1.0 - W3C Note 6 November 2000
  2. Meta Refresh Tag, An About.com article covering the use of the tag for page reloading or redirection
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.