Salve. Sto modificando un plug in di Joomla per realizzare una asta on-line.
Il mio obiettivo è : allo scadere del timer, ricaricare la pagina. Per tale scopo utilizzo uno script scritto da me e una pagina php(premetto, ho sempre programmato in java e sono le prime volte che programmo in javascript)
Per semplicità, la pagina php restituisce una stringa(non sono riuscito a passare un array dalla pagina php allo script):
echo '' . $array_result[0] . ' , ' . $array_result[1];
fino a qui tutto ok.
Il mio script, ogni secondo(poco efficiente, ma non ho trovato soluzione diversa), verifica se l'asta è conclusa, facendo richiesta alla pagina php che accede al DB e compone la stringa.
Lo script è questo(eliminando le cose non necessarie alla discussione):
codice:
setInterval(function( ) {
var myRequest = null;
function CreateXmlHttpReq(handler) {
var xmlhttp = null;
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
xmlhttp.onreadystatechange = handler;
return xmlhttp;
}
function myHandler() {
if (myRequest.readyState == 4 && myRequest.status == 200) {
e = document.getElementById("test");
var str = myRequest.responseText;
var res = str.split(" , ");
carica = res.pop(0);
e.innerHTML = "" + res.pop(0); //MI SETTA IL PREZZO CORRENTE DELL'ASTA
e.innerHTML = "" + carica; //MI DICE SE DEVO CARICARE O MENO LA PAGINA
if(carica == 1){
location.reload();//PROBLEMA
}
}
}
var idAuction = '{/literal}{$auction->id}{literal}';
myRequest = CreateXmlHttpReq(myHandler);
myRequest.open("POST", "/joomla/components/com_bids/templates/default/prelievo.php?q=" + idAuction);
myRequest.send(null);
}, 1000);
Il mio dubbio è: dopo location.reload(); (o window.location.reload(true) e tutti i metodi per ricaricare una pagina) che cosa accade allo script? continua l' esecuzione? Cioè, arriverà lo script a fare una nuova richiesta alla pagina php? location.reload() è bloccante?
Dopo che viene lanciato il reload(lo vedo nella pagina che ricarica), "lo script dovrebbe" fare una richiesta alla pagina, nella quale il carica è settato a zero nel DB, e quindi trovarselo poi nello script.. questo non accade e non so se è lo script che rimane bloccato su reload o altro