Ciao a tutti io ho questo codice ajax:
var ajax = assegnaXMLHttpRequest();
function PreparaDati(){
stringa = "";
var form = document.forms[0];
var numeroElementi = form.elements.length;
for(var i = 0; i < numeroElementi; i++){
if(i < numeroElementi-1){
stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value)+"&";
}else{
stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value);
}
}
}
function loader(elemento){
elemento.style.display = 'block';
elemento.style.visibility = 'visible';
elemento.innerHTML = '[img]ajax-loader.gif[/img]';
}
function InviaDati(url, method) {
PreparaDati();
caricaContent(url, method, stringa);
}
function handleResponse(method, elemento) {
// verifica dello stato
if(ajax.readyState === readyState.COMPLETATO) {
// verifica della risposta da parte del server
if(statusText[ajax.status] === "OK"){
// operazione avvenuta con successo
//verifica del tipo di richiesta
switch (method.toLowerCase()){
case "get" :
elemento.innerHTML = ajax.responseText;
break;
case "post" :
elemento.innerHTML = "Dati inseriti correttamente!";
break;
}
}else {
// errore di caricamento
elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.
";
elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
}
}
}
function exeFunc(method, url, elemento){
ajax.open(method, url, true);
if (method.toLowerCase() == "post"){
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
}
// rimozione dell'header "connection" come "keep alive"
ajax.setRequestHeader("connection", "close");
// impostazione controllo e stato della richiesta
ajax.onreadystatechange = function resp(){handleResponse(method, elemento)};
switch (method.toLowerCase()){
case "get" :
ajax.send(null);
break;
case "post" :
ajax.send(stringa);
break;
}
}
function caricaContent(url, method) {
// variabili di funzione
var
// assegnazione elemento del documento
elemento = prendiElementoDaId("contenuto-dinamico"),
// risultato booleano di funzione
usaLink = true;
// se l'oggetto XMLHttpRequest non è nullo
if(ajax) {
loader(elemento);
// il link al file non deve essere usato
usaLink = false;
// impostazione richiesta asincrona in GET
// del file specificato
setTimeout('exeFunc(method, url, elemento)',1000);
}
return usaLink;
}
perfettamente funzionante se elimino il settimeout alla quart'ultima riga.
come posso implementare il settimeout in modo che funzioni?
Grazie