Rieccomi, ora alle prese con l'arduo tentativo di rendere il mio codice compatibile con IE 8, cosa che non sta avvenendo come speravo. Il tutto funziona correttamente con Firefox,Opera,Chrome ecc, ma con IE non va un bel niente di niente, il problema che ho con la seguente funzione è lo stesso che ho con le altre analoghe, riporto questa per brevità
Code:
//--------Ricarica la tabella status generica ------------//
function refresh_status(){
xmlHttp2.open("GET", "Php_status.php?Alfabeto="+ alfabeto, true);
//alert("Puppa");
xmlHttp2.onreadystatechange = function(){
//alert(xmlHttp.readyState);
if (xmlHttp2.readyState == 4 && xmlHttp2.status == 200) {
var obj = document.getElementById("result");
var div_response=document.createElement("DIV");
while(obj.hasChildNodes()){
obj.removeChild(obj.firstChild);
}
div_response.innerHTML= xmlHttp2.responseText;
obj.appendChild(div_response);
}
}
xmlHttp2.send(null);
}
La funzione deve fare le seguenti cose, chiedere l'esecuzione del file Php_status.php, passandogli il valore di alfabeto che altro non è che un gruppo di tre lettere (Es. ABC) con cui deve iniziare il nome di un Azione, (es. Alcatel,Benetton,Cremonini), la risposta del file php è la tabella in html contenente tutte le azioni e il loro valore, vi accedo tramite responseText.
la funzione refresh status viene invocato ogni 2500ms,in firefox la tabella si aggiorna correttamente, in explorer invece esegue il primo load e basta, non effettua alcun reload. Temo che il problema sia nella gestione dell'innerHtml, ma non ne sono sicuro...
edit: Ho trovato una soluzione scervellandomici sopra, ho scoperto che IE molto probabilmente mette in cache la risposta ottenuta dal server nelle pagine php e non va ad eseguire quindi un aggiornamento. ho inserito quindi il seguente codice
Code:
xmlHttp2.open("GET", "Php_status.php?Alfabeto="+ alfabeto+"&t=" + new Date().getTime(), true);
avendo quindi il parametro t che cambia sempre e che è scartato in automtico dal server, facendo sembrare quindi di accedere ogni volta a un url differente.
Con questo accrocchio tutto funziona, mi domando se è questo l'unico modo o esistono sistemi un po più raffinati..