Ho modificato la home page del mio blog in modo tale che i venisse caricata prima tutta la struttura della pagina poi, sfruttando AJAX, i songoli post uno per uno. Ecco il codice javscript che ho scritto:
codice:
function sendAJAXrequest(nomeFile,post_par,func,ajax){
if(ajax) {
ajax.open('post', nomeFile, true);
ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
ajax.onreadystatechange = func;
ajax.send(post_par);
}
return;
}
function caricaPost(attuale,count) {
var nomeFile = "/Sezioni/Articoli/AJAX_getPost.php";
var post_par = "id="+post_id[attuale];
var elemento = prendiElementoDaId("testo"+post_id[attuale]);
var ajax = assegnaXMLHttpRequest();
/*Definisce la funzione da attuare*/
var func = function() {
if(ajax.readyState === readyState.COMPLETATO) {
// verifica della risposta da parte del server
if(statusText[ajax.status] === "OK"){
elemento.innerHTML = ajax.responseText;
if(count>0)caricaPost(attuale+1,count-1);
}
else{
libero=true;
elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.
";
elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
}
}
}
/*Elabora richiesta*/
return sendAJAXrequest(nomeFile,post_par,func,ajax);
}
Il tutto pare funzionare e non dà errori, tuttavia a volte succede che alcuni post rimangono vuoti, ovvero, controllando con FireBug, pare che il server ritorna una stringa vuota. Posto che il codice php è corretto, ci sono errori nella logica? Il fatto di richiamare "ricorsivamente" la funzione caricaPost() può comportare qualche errore? O forse il server non riesce ad elaborare troppe domande una vicino l'altra? Il fatto strano è che poi questo comportamento è random, non avviene sempre e sempre per post diversi!!
Aiuto....