Il modo migliore per fare il refresh automatico della pagina
Mercoledì 25 Novembre 2009 - 08:05
di Cesare Lamanna


Mi affido alla vostra sapienza per capire. David Walsh ha dato un’occhiata al sito della ESPN e ha verificato che il refresh della pagina (ogni 15 minuti, ovvero 900 secondi) avviene usando un paio di righe di Javascript e usando come opzione di fallback il metodo forse più noto, quello basato sul cosiddetto >Meta refresh.
Riporto per comodità il codice:
<script>
ESPN_refresh=window.setTimeout(function(){window.location.href=window.location.href},900000);
</script>
<noscript>
<meta http-equiv=”refresh” content=”900″ />
</noscript>
La pratica del refresh automatico, lo sapete, è comune sui siti di news. In Italia, ad esempio, lo usano sia Corriere.it sia Repubblica.it. In entrambi i casi il refresh è ottenuto via Javascript, anche se nel codice della home page del quotidiano romano è presente anche l’istruzione basata su META.
La cosa che mi ha lasciato perplesso è stata la considerazione di Walsh sul perché quelli di ESPN avrebbero usato Javascript invece che il semplice HTML. Il riferimento è alla pagina di Wikipedia che ho linkato già prima:
L’uso del meta refresh è scoraggiato dal W3C, perché un refresh non atteso della pagina può disorientare gli utenti.
Ma stando così le cose, anche la tecnica basata su Javascript dovrebbe essere scoraggiata. Sbaglio?
In effetti, uno dei link della pagina di Wikipedia rimanda a questa sezione della WCAG 1.0 in cui si dice esplicitamente che:
Chi fornisce contenuti dovrebbe evitare il refresh periodico e consentire agli utenti di scegliere quando vogliono ottenere l’informazione più aggiornata.
Nulla da eccepire. Salvo che la summenzionata pagina di Wikipedia suggerisce:
Il modo raccomandato per [effettuare il refresh] consiste nel fornire una qualche forma di interazione, tipo un pulsante, per lasciare agli utenti scegliere quando aggiornare il contenuto.
Ma scusate, questo pulsante non esiste già? Non è per caso quello che si trova nei pressi della barra degli indirizzi di tutti i browser? :)
Insomma, refresh automatico o no? E se sì, se proprio è necessario, come?
Categoria: Scripting, Web Design | Permalink
Commenti
1
Con javascript ormai è diventato semplicissimo aggiornare solo parti della pagina, in questo modo si può aggiornare solo quello che veramente è cambiato, magando facendolo capire all’utente.
Senza l’odioso refresh di tutta la pagina magari mentre stai leggendo una notizia…
2
Il modo raccomandato per [effettuare il refresh] consiste nel fornire una qualche forma di interazione, tipo un pulsante, per lasciare agli utenti scegliere quando aggiornare il contenuto.
Si potrebbe pensare che intendano un pulsante che attivi o disattivi il refresh automatico. Ma, in effetti, non è così. Per questo, francamente, mi pare una direttiva troppo rigida per essere rispettata in ogni occasione: su corriere.it, repubblica.it e in generale ogni sito a carattere estremamente informativo, è quasi una necessità sentita lato utente.
3
la seconda parte è in realtà il mio commento.
4
Il refresh via JavaScript a volte effettivamente è utile. Mettere un bottone manuale è un’opzione un po’ rozza, meglio un aggiornamento mirato delle sole parti che hanno subìto effettivamente delle variazioni. Oppure un approccio più soft che fornisca il giusto feedback all’utente, ad esempio - invece che ricaricare brutalmente la pagina con procedura “coatta” - dopo i 15 minuti potrebbe comparire un bel boxettino o una modal window con un messaggio del tipo:
I contenuti di questa pagina potrebbero essere stati aggiornati. Ricaricare?
OK / ChiudiProprio ieri stavo leggendo la home del Corriere e ad un certo punto la pagina si è ricaricata facendomi alterare leggermente per aver perso il filo. Questo non è corretto nei confronti dell’utente. Teniamo conto che poi questa procedura serve soprattutto a generare page views e impressions fasulle…
5
Io farei una richiesta in AJAX ogni tot. minuti dove mi restituisce 1 o 0 in base al fatto che ci siano contenuti aggiornati; se mi restituisce 1 farei uscire qualcosa di simile da quello suggerito da Marcello (commento 4).
6
In certi contesti è utile, ad esempio con un sondaggio o un concorso in partenza, visualizzando un countdown: allo scadere del tempo avviene un refresh automatico.
Negli altri casi per me è da evitare: un utente potrebbe stare leggendo una parte della pagina. Fargliela sparire sotto gli occhi non è una bella idea.
# - postato da Tommaso Baldovino - 25 Novembre 2009 - 11:33







