PDA

View Full Version : [Javascript] - visualizzazione di dati xml dinamici con xmlhttprequest


italo2008
23-05-2009, 10:22
salve


in un server ho memorizzati dei dati xml, i quali vengono aggiornati automaticamente. Lo scopo è permettere all'utente di vedere sul monitor i dati che cambiano. Usando uno dei vari esempi che ho trovato sul web che usano xmlhttprequest, riesco, se così si può dire, a fare una fotografia ai dati, visualizzandoli, ma poi, anche facendo un refresh della pagina, i dati rimangono sempre quelli, anche se sul server sono cambiati. Perchè succede questo? c'è modo di aggiornarli dinamicamente?

qwerty86
23-05-2009, 17:50
in javascript c'è una funzione settimeout se non erro o qualcosa di simile , puoi quindi a ogni tot secondi richiamare la funzione che hai scritto ora che ti fa visualizzare i dati.

italo2008
25-05-2009, 12:42
se intendi la funzione setinterval, lo so che c'è, ma il punto è che i dati non vengono aggiornati neanche facendo un refresh della pagina, men che meno con questa funzione..... quello che non capisco è: i dati nel server vengono aggiornati automaticamente ogni 2 secondi, perche se io faccio un refresh della pagina i dati non si aggiornano ma restano quelli che visualizzo alla prima apertura della pagina?? come si può fare per rimediare?

qwerty86
25-05-2009, 12:45
puoi postare il codice?

italo2008
26-05-2009, 08:20
var xmlhttp



function caricaXML (url){

if (window.XMLHttpRequest) {

// code for Mozilla, etc.

xmlhttp=new XMLHttpRequest()

xmlhttp.onreadystatechange=state_Change;

xmlhttp.open("GET",url,true)

xmlhttp.send(null)

} else if (window.ActiveXObject) {

// code for IE

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")

if (xmlhttp) {

xmlhttp.open("GET",url,true)

alert(param);

xmlhttp.onreadystatechange=state_Change;



xmlhttp.send(null)

}

}

}

function state_Change() {


if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

var xmlDoc=xmlhttp.responseXML;
var tagvalues = xmlDoc.getElementsByTagName("value");
alert (tagvalues[0].childNodes[0].nodeValue);
}
}