ciao a tutti,
fino ad ora ho utilizzato Ajax per effettuare chiamate asincrone ed avere una risposta finale.
Adesso, vorrei utilizzare Ajax per effettuare sempre chiamate asincrone ma nel frattempo ricevere informazioni in tempo reale.
Il classico esempio è l'inserimento di 100.000 record in un db (pagina insDb.php) e nel frattempo farmi stampare in una input un contatore.
Il primo metodo a partire appena clicco su un qualsiasi pulsante è start():
essa richiama getCount:Codice PHP:function start(){
http.open('POST','insDb.php', true);
http.onreadystatechange = getCount;
http.send(null);
}
e questa è la semplice pagina php (ovviamente richiama classi che gestiscono l'inserimento):Codice PHP:function getCount(){
if(http.readyState == 4){
if (http.status == 200) {
// assegno un semplice testo ad una input al termine dell'operazione
var response = http.responseText;
if(response == ''){
document.getElementById('status').value = 'Nessuna elaborazione effettuata...';
}else{
document.getElementById('status').value = 'Elaborazione Terminata!!';
}
}
}else{
document.getElementById('status').value = 'Elaborazione in corso...';
}
}
Avevo pensato di sfruttare la variabile "cont" (riporata sulla pagina PHP), ma come faccio a reperirla sempre in ogni suo stato durante l'inserimento?Codice PHP:require_once("include/init.inc.php");
$limit = 100000; // 100.000 record da inserire
$cont = 0;
$aVar['text'] = 'Adesso vediamo cosa succede...';
$aVar['status'] = 1;
for($x=0;$x<$limit;$x++){
$objDB->insert($aVar,'count');
$cont++;
}
require_once("include/end.inc.php");
print("cont=$cont");
Quale parte del javascript va cambiato?
pensavo che si potesse cambiare questa riga:
inCodice PHP:http.send(null);
ma niente... Qualcuno mi può aiutare?Codice PHP:http.send(cont);
Grazie mille e ciao Max![]()

Rispondi quotando