Meta refresh

S Vikipedije, slobodne enciklopedije

Meta refresh je metod kojim se veb pregledaču naređuje da automatski osveži sadržaj učitane veb strane nakon datog vremenskog intervala, korišćenjem html meta elementa sa podešenim parametrom http-equiv na "refresh" i content parametrom na zadati vremenski interval u sekundama. Takođe je moguće narediti pregledaču da učita drugi URL kada strana bude osvežena, dodavanjem drugog URL-a kao vrednost content parametra. Podešavanjem vremenskog intervala osvežavanja na nulu (ili veoma malu vrednost), se omogućava korišćenje meta refresh-a kao URL preusmeravanje.

Upotrebljivost[uredi | uredi izvor]

Upotreba meta refresh-a je obeshrabrena od strane W3C-a, jer neočekivana osvežavanja stranice mogu zbuniti korisnike. [1] Meta refresh takođe ometa funkcionisanje dugmeta back u nekim pregledačima (uključujući Internet Explorer 6 kao i ranije verzije tog pregledača), mada većina pregledača nadoknadjuje ovaj nedostatak (Internet Explorer 7 i noviji, Opera, Chrome, Mozilla Firefox).

Postoji i opravdana upotreba meta refresha-a, kao što je omogućavanje ažuriranja dinamičkih veb stranica ili sprovođenje kontrolisane navigacije veb sajta bez korišćenja JavaScript-a. Mnogi veliki sajtovi ga koriste za osvežavanje vesti ili ažuriranje statusa, naročito kada je zavisnost od JavaScript-a i preusmeravanja nepoželjna.

Primeri[uredi | uredi izvor]

Ubaciti unutar <head> elementa da bi se strana osvežavala nakon 5 sekundi:

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

Preusmeravanje na http://example.com/ nakon 5 sekundi:

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

Preusmeravanje na http://example.com/ odmah:

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

Nedostaci[uredi | uredi izvor]

Meta refresh tagovi imaju odredjene nedostatke:

  • Ukoliko se stranica preusmeri prebrzo (manje od 2-3 sekunde), korišćenje back dugmeta na sledećoj stranici moze prouzrokovati to da neki pregledači se vrate nazad na prethodnu stranicu, posle čega će se preusmeravanje ponoviti. Ovo je lose upotrebljavati jer pregledač moze ostati "zaglavljen" na poslednjem veb sajtu.
  • Korisnik može ali i ne mora želeti da bude preusmeren na drugu stranicu, što može dovesti do nezadovoljstva ili do zabrinutosti zbog bezbednosti.[2]

Alternative[uredi | uredi izvor]

Meta refresh koristi http-equiv meta oznaku da oponaša Refresh HTTP zaglavlje, i kao takav takođe može biti poslat kao zaglavlje od strane HTTP veb servera, mada treblo bi napomenuti da Refresh nije deo HTTP standarda.

Alternative postoje za obe upotrebe meta refresh-a.

Preusmeravanje[uredi | uredi izvor]

Jedna od alternativa je slanje HTTP status koda za preusmeravanje, kao što su HTTP 301 ili HTTP 302. To je uobičajeni način za preusmeravanje korisničkog agenta na drugu veb stranu. Ovo se može postići posebnim pravilom na veb serveru ili pomoću jednostavnog skripta na veb serveru.

JavaScript je drugi način, ali nepreporučljiv, zato što su korisnici možda onemogućili JavaScript u svojim pregledačima.

Osvežavanje[uredi | uredi izvor]

Alternativni metod je obezbeđivanje interakcijskog uređaja, poput dugmeta, kako bi korisnici mogli sami da izaberu kada će osvežiti sadržaj stranice. Druga opcija je korišćenje npr. Ajax-a za ažuriranje delova veb sajta bez potrebe za osvežavanjem sadržaja cele stranice, ali bi ovo takođe zahtevalo od korisnika da uključe JavaScript u njihovim pregledačima.

Preusmeravanje kod noscript pregledača[uredi | uredi izvor]

Korišćenjem ovog metoda, pregledači koji ne podržavaju JavaScript mogu preusmeravati na posebne stranice koje ne očekuju/zahtevaju od korisnika da podržava JavaScript.

Na primer, ako je trenutni URL news.php, pregledač preusmerava korisnika na news-nojs.php.

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

Reference[uredi | uredi izvor]

  1. ^ Core Techniques for Web Content Accessibility Guidelines 1.0
  2. ^ „Meta Refresh Tag”. Архивирано из оригинала 18. 05. 2013. г. Приступљено 15. 05. 2013. 

Spoljašnje veze[uredi | uredi izvor]

  1. w3schools meta tag
  2. w3c meta tag