View Full Version : [AJAX] Come tenere sempre aggiornata la pagina
altermetax
09-07-2014, 16:08
Ciao a tutti.
Vorrei chiedere se è possibile fare il refresh automatico di una pagina AJAX ogni 3 secondi.
Scusate se il messaggio è breve, ma è tutto quello che ho da chiedere.
altermetax
non è ben chiaro cosa vuoi fare.
"una pagina ajax" non ha un senso logico.
una pagina può contenere uno script che effettua chiamate ajax.
se ricarichi la pagina intera facendo una chiamata HTTP ovvero ricaricare la pagina dal browser ad esempio, la pagina si ricarica e con essa tutti gli script.
se fai una chiamata XHR (ajax) ad esempio il server potrebbe mandarti un JSON con i dati che sono cambiati e tu potresti aggiornare i contenuti della pagina senza ricaricare l'intera pagina.
ti è chiaro?
altermetax
10-07-2014, 10:24
non è ben chiaro cosa vuoi fare.
"una pagina ajax" non ha un senso logico.
una pagina può contenere uno script che effettua chiamate ajax.
se ricarichi la pagina intera facendo una chiamata HTTP ovvero ricaricare la pagina dal browser ad esempio, la pagina si ricarica e con essa tutti gli script.
se fai una chiamata XHR (ajax) ad esempio il server potrebbe mandarti un JSON con i dati che sono cambiati e tu potresti aggiornare i contenuti della pagina senza ricaricare l'intera pagina.
ti è chiaro?
OK, per pagina AJAX intendevo una pagina html con uno script ajax.
Come chiamata intendevo AJAX, cioè la seconda, altrimenti avrei già saputo come fare. Mi potresti cortesemente fare un esempio?
altermetax
altermetax
11-07-2014, 11:30
UP!
Avendo questa funzione:
ajax.js
function ajax (id, method, url, parameters)
{
var request = new XMLHttpRequest ();
request.onreadystatechange = function ()
{
if (request.readyState == 4 && request.status == 200)
{
document.getElementById (id).innerHTML = request.responseText;
}
}
if (method == "GET")
{
request.open ("GET", url+"?"+parameters, true);
request.send ();
}
else if (method == "POST")
{
request.open ("POST", url, true);
request.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
request.send (parameters);
}
}
Pensavo di inserire nella pagina che dovrà autocaricarsi
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>AJAX autoricaricante</title>
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript">
while (true)
{
ajax ("SuperDiv", "GET", "source.txt", "");
}
</script>
</head>
<body>
<div id="SuperDiv">
Caricamento in corso...
</div>
</body>
</html>
Ma sicuramente non è il modo migliore...
Ciao!
Daniels118
11-07-2014, 13:07
In quel modo faresti bloccare tutto, sia il client che il server... devi utilizzare la funzione setInterval (http://www.w3schools.com/jsref/met_win_setinterval.asp)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.