consiglio timeout refresh
consiglio timeout refresh postato il 01/02/2012 23:03:34 nel forum programmazione, open source e hosting
Ciao ragazzi, semplice domanda perchè mi piace rivolgermi ai più esperti per essere sicuro di fare sempre la scelta migliore.
Devo ricaricare una paginina in un frame ogni minuto. Cosa consigliate tra questi due metodi? Funzionano bene entrambi e non danno problemi, ma quale preferire e perchè?
<SCRIPT language="JavaScript">
function doRefresh() {
document.location.reload();
}
window.setTimeout("doRefresh();", 60000);
</SCRIPT>
Oppure un semplice <meta http-equiv=refresh content=60> ?
Pagine → 1
01/02/2012 23:29:13
La cosa buona del secondo è che è un refresh java che può essere letto anche da browser come il chrome ed il safari , che invece non leggono il comando meta http .
Infatti nel gdr cd extreme e nelle land che usano quel cms c'è ancora quel comando ed in molte land che non lo hanno cambiato , se entri con chrome non ti aggiorna nè i presenti nè la chat :P
01/02/2012 23:36:03
fioridelmale ha scritto: La cosa buona del secondo è che è un refresh java che può essere letto anche da browser come il chrome ed il safari , che invece non leggono il comando meta http .
Infatti nel gdr cd extreme e nelle land che usano quel cms c'è ancora quel comando ed in molte land che non lo hanno cambiato , se entri con chrome non ti aggiorna nè i presenti nè la chat :P
Il primo quindi...non il secondo xD
Tu consigli di usare questo che si legge dappertutto:
<SCRIPT language="JavaScript">
function doRefresh() {
document.location.reload();
}
window.setTimeout("doRefresh();", 60000);
</SCRIPT>
02/02/2012 00:41:24
fioridelmale ha scritto: La cosa buona del secondo è che è un refresh java che può essere letto anche da browser come il chrome ed il safari , che invece non leggono il comando meta http .
Infatti nel gdr cd extreme e nelle land che usano quel cms c'è ancora quel comando ed in molte land che non lo hanno cambiato , se entri con chrome non ti aggiorna nè i presenti nè la chat :P
Io uso il normale refresh in land con
<meta http-equiv="refresh" content="xx" />
dove xx sono is econdi ogni quanto deve partire il refresh e la cosa funziona perfettamente sia con safari che chrome, chrome testato personalente da me e safari da uno dei vecchi admin.
Ho cercato tramite google ma non ho trovato nessuna fonte ufficiale che dica che se il tag è scritto correttamente questo non venga supportato da chrome e safari.
Se qualcuno ha una fonte ufficiale della cos ami piacerebbe leggerla per documentarmi
Se scritto bene il tag dovrebbe funzionare ocn tutit i browser, che poi invece sia stato considerato deprecato dall W3C e per vari motivi sconsigliato è un altro discorso
02/02/2012 00:44:26 e modificato da leoblacksoul il 02/02/2012 00:50:28
Dipende dagli scopi.
Se devi semplicemente ricaricare la pagina ogni x secondi e basta io userei il tag meta e NON il codice javascript (java e javascript non sono lo stesso linguaggio e non hanno niente in comune! Javascript è il linguaggio per i siti web; java no.)
Nonostante quello che dice chi ha postato prima di me, non è vero che il tag meta refresh non funziona sui browser moderni. L'ho testato cinque secondi fa sulle ultime versioni di Firefox, Chrome, Safari, Opera e Internet Explorer (si ce li ho installati tutti XD) e funziona perfettamente in tutti.
Inoltre il refresh con meta tag funziona sempre anche sui browser più vecchi. Invece il refresh con javascript è facilmente disattivabile, basta disabilitare javascript (TUTTI i browser hanno l'impostazione per disabilitare javascript), invece HTML non lo puoi disattivare (dato che è il cuore del browser v.v)
Un altra opzione che non figura ra le due che hai listato ma è quella che uso sempre io è usare gli header HTTP. Se stai facendo un sito in PHP ti basta scrivere:
<?php header("Refresh: 2;") ?>
è codice PHP, NON html. Inoltre va scritto prima che venga fatto qualunque tipo di output sulal pagina.
Questo codice, ha gli stessi vantaggi del meta tag, ha le stese caratteristiche. Ma in più ha il fatto che non è sconsigliato o deprecato, anzi secondo me è il modo migliore di farlo.
02/02/2012 01:12:22
leoblacksoul ha scritto:
Nonostante quello che dice chi ha postato prima di me, non è vero che il tag meta refresh non funziona sui browser moderni. L'ho testato cinque secondi fa sulle ultime versioni di Firefox, Chrome, Safari, Opera e Internet Explorer (si ce li ho installati tutti XD) e funziona perfettamente in tutti.
Vero, tranquillizziamo anche dyrr, finora ho sempre usato questo ed ha sempre funzionato su tutti i browser.
Un altra opzione che non figura ra le due che hai listato ma è quella che uso sempre io è usare gli header HTTP. Se stai facendo un sito in PHP ti basta scrivere:
<?php header("Refresh: 2;") ?>
è codice PHP, NON html. Inoltre va scritto prima che venga fatto qualunque tipo di output sulal pagina.
Questo codice, ha gli stessi vantaggi del meta tag, ha le stese caratteristiche. Ma in più ha il fatto che non è sconsigliato o deprecato, anzi secondo me è il modo migliore di farlo.
Questo non lo sapevo e mi sa che lo provo, mi ispira, e programmando in php fa anche più ordine nella pagina.
Andrebbe inserito proprio all'inizio prima di <?session start... ?
02/02/2012 01:51:10 e modificato da leoblacksoul il 02/02/2012 01:53:07
Va inserito nelle vicinanze di session_start, perchè ha le sue stesse restrizioni: cioè non funziona se è già stato inviato del testo. Questo perchè sia session_start sia header inviano header HTTP, che (come si può dedurre dal nome) devono essere inviati prima del testo della pagina.
In realtà quel header in genere lo uso nella sua versione più estesa, per fare i redirect per i messaggi di conferma di alcune pagine:
header("Refresh: 2; url='http://indirizzo.com/'");
02/02/2012 02:00:21
leoblacksoul ha scritto: Va inserito nelle vicinanze di session_start, perchè ha le sue stesse restrizioni: cioè non funziona se è già stato inviato del testo. Questo perchè sia session_start sia header inviano header HTTP, che (come si può dedurre dal nome) devono essere inviati prima del testo della pagina.
In realtà quel header in genere lo uso nella sua versione più estesa, per fare i redirect per i messaggi di conferma di alcune pagine:
header("Refresh: 2; url='http://indirizzo.com/'");
beh ma è come <meta http-equiv=refresh content=60> che in realtà dovrebbe essere <meta http-equiv=refresh "content=60;URL=xxx"> giusto?
Ho fatto una prova solo con header("Refresh: 2;"); e va tutto bene, posso lasciarlo così per un semplice "auto aggiorna" della pagina?
02/02/2012 14:06:29
Si esatto, alcuni meta tag sono trasposizioni in HTML degli header HTTP
02/02/2012 14:13:45
leoblacksoul ha scritto: Si esatto, alcuni meta tag sono trasposizioni in HTML degli header HTTP
perfetto, allora mi sa che userò l'header php in forma semplice che mi hai scritto all'inizio header("Refresh:60;");
Con questo sono sicuro che il refresh funzionerà a CHIUNQUE giusto? senza farmi problemi di sorta, nemmeno teorici che poi in pratica non si verificano...sicurezza massima.
02/02/2012 14:40:31
già
gli header HTTP non dipendono nè dallo stile HTML che usi (HTML5, XHTML, HTML), nè dal fatto che javascript sia attivato o meno.
Dipendono solo dal protocollo HTTP, che è decisamente stabile e tutti i browser lo interpretano allo stesso modo (al contrario di quanto avviene con HTML o javascript)
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
World of the Sea Battle ↗
Crossout ↗
Tiles Survive ↗
AlterEgo ↗
Project Entropy ↗
Imperion ↗
Foundation Galactic Frontier ↗
World of Tanks ↗