[RISOLTO] XML - avanzamento processi tramite flush non funziona

di il
1 risposte

[RISOLTO] XML - avanzamento processi tramite flush non funziona

Salve,
non riesco a ricevere da un file avanzamento.php l'avanzamento di un lungo processo di query per poter visualizzare una barra di percentuale.

in pratica richiamo il codice PHP dal js così:

var xhttp = new XMLHttpRequest();
	xhttp.onprogress=function(pe){
			var tx=this.responseText;
			//inserire qui il codice che processa la risposta
		}
	xhttp.onreadystatechange = function()
	{
             if (this.readyState == 4 && this.status == 200)
		{
			var risp=this.responseText;
			if(risp=="OK") alert("OK");      }
	};
	xhttp.open("POST", "restore.php", true);
        xhttp.send();	
il codice PHP è

<?php
	ini_set('max_execution_time', 0);
	ini_set('implicit_flush', 1);
	ob_implicit_flush(1);
   ......
	for($i=0;$i<100;$i++)
	{
	  $conn->query($queryval[$i]);
	  if (ob_get_level() == 0) ob_start();
	  echo($i."%\n");
	  ob_flush();
	  flush();
	}
	die("OK");
?>
il ciclo for del codice PHP impiega circa 300 secondi per essere completato (consiste in una lista di query che mi ripristinano un database).
all'interno di questo ciclo vorrei inviare una variabile al codice java così da poter visualizzare una barra di avanzamento.
come posso fare?
Ho provato con la funzione flush() di php ma non funziona.
Avevo pensato di fare emettere al php un evento tipo "onprogress". E' fattibile?
saluti.

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte