Newsgroup: it.comp.www.php
Titolo: refresh della pagina

Nella mia homepage ho un iframe che fa il refresh ogni 2 secondi. Deve 
visualizzare (in diretta) i dati inseriti da un operatore del mio sito.
Simulazione dello stato iniziale:
0
0
0
------
l'operatore scrive "1" nella seconda riga ed in home page ho:
nel primo refresh vedo l'"1"
nel secondo refresh ricompare lo "0"
poi un'alternanza di 1 e 0 fino a quando *finalmente* si stabilizza il 
numero 1.
Stessa cosa per le altre righe nelle successive immissioni dell'operatore.
Come volevo ovviare a questo inconveniente?
con echo time();
risultato?
il timestamp visualizzato č sempre progressivo ma il corretto refresh della 
pagina non avviene.
Cosa posso fare?
ciao
Salvatore Paci
www.salvatorepaci.it

 Cosa posso fare?
Postare nel NG adeguato.
Togliere il "refresh" della pagina html con pragma
Infatti il dato 0 viene messo in cache e ci vogliono giusto un paio di
ricariche della pagina per farlo allineare mentre time viene dato ogni
volta nuovo dal server.
Potresti vedere qualche funzione in AJAX che controlli i cambiamenti dei
dati.
-- 
Amministratore
www.amiciamici.com
Giornalismo dal basso sull'amicizia e sul turismo
"Pronto Chi Bussa" il primo podcast di Parma e provincia?

 Togliere il "refresh" della pagina html con pragma
-------------
Premesso che credo di aver postato nel NG adeguato (ho un sito creato tutto 
in php e la funzione time() è di php)...
ho utilizzato il meta sottostante:
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
ma non ho ottenuto alcun miglioramento.
Ciao
Salvatore Paci
www.salvatorepaci.it

 <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
Prova con:
<meta http-equiv="pragma" content="no-cache">
Tra <head> e </head>


 <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
Altra cosa che mi è venuta in mente è di passare questi header:
header ("cache-control: no-cache, must-revalidate");
header ("pragma: no-cache");
header ("expires: Mon, 02 Gen 2007 00:00:00 GMT"); -->data di creazione
del documento
header ("last-modified: " . gmdate("D, d M Y H:i:s") . " GMT");


 Altra cosa che mi è venuta in mente è di passare questi header:
--------------------
con il seguente codice...
****************
<php
header ("cache-control: no-cache, must-revalidate");
header ("pragma: no-cache");
header ("expires: Mon, 02 Gen 2007 00:00:00 GMT");
header ("last-modified: " . gmdate("D, d M Y H:i:s") . " GMT");
?>
<html>
<head>
<title>Estrazione in diretta</title>
<meta http-equiv="pragma" content="no-cache">
</head>
<body>
****************
... la pagina che effettua il reload ogni 2 secondi funziona correttamente 
(grazie!)
il problema rimane nella pagina dell'operatore.
Mi spiego:
i dati che adesso vengono correttamente visualizzati provengono dal lavoro 
dell'operatore.
Egli ha una pagina (aggiorna.php) che contiene lo stesso tabellone 
visualizzato dagli utenti solo che... l'operatore può modificare i dati da 
far visualizzare.
Come funziona la sua pagina?
modifica "0" in "1"
preme *invia* inviando i dati in $_POST ad una pagina che scrive i dati in 
un file e reindirizza sulla pagina precedente.
Quando, dopo un secondo, l'operatore vede nuovamente la sua pagina... la 
vede con lo "0" e deve necessariamente premere F5 per visualizzare l'1 
inserito precedentemente.
Naturalmente ho inserito il codice da te consigliato anche in questa pagina.
Ciao 

Salvatore Paci ha scritto:

Soluzione fai da te:
i browser un po' se ne infischiano di cosa gli dici di mettere o non
mettere in cache.
La pagina che fai ricaricare dall'operatore, dopo il passaggio delle
modifiche di 0 e 1, chiamala con questa struttura:
mia_pagina.php?numerocasuale
oppure setta a caso una variabile
Così chiamando sempre una pagina differente, come nome, forse freghi la
cache del browser.


 cache del browser.
------------------
Perfetto!
Grazie 1.000