Page 1 sur 1

affichage instantané

Posté : 04 mai 2010, 15:10
par Tatinos
Bonjour,
Je souhaiterais que mes résultats s'affichent au fur et à mesure qu'ils sont calculés. J'ai essayé tous les flush possibles, mais rien ne marche (ni sous IE ni sous FF).

$aclcul1=Calcul1();
echo $calcul1;
flush();

$calcul2=Calcul2():
echo $calcul2;
flush();

Y'a-t-il un autre moyen de faire ceci ? et qui marche ? :D
Merci beaucoup.
Bonne aprem !

Re: affichage instantané

Posté : 04 mai 2010, 15:47
par macgawel
Bonjour.

Pas certain d'avoir bien compris, mais bon...
L'idée est d'avoir une page sur laquelle il y a le résultat du calcul 1, puis une fois qu'il est fini celui du calcul 2, c'est bien ça ?

PHP renvoie une page "finie". Ca ne marchera pas, même avec des flush.

La solution, c'est AJAX :
Un javascript va demander la page PHP qui fait le premier calcul.
Une fois le calcul terminé, PHP renvoie le résultat, JS l'affiche puis demande la page qui fait le deuxième calcul.
Une fois le calcul terminé, PHP renvoie le résultat, JS l'affiche.

Re: affichage instantané

Posté : 04 mai 2010, 15:53
par stealth35
PHP renvoie une page "finie". Ca ne marchera pas, même avec des flush.
si
echo '<pre>';	
ob_end_flush();
	
for($i = 0; $i < 10; $i++)
{		
	echo $i . PHP_EOL;		
	sleep(1);
	flush();
}

Re: affichage instantané

Posté : 04 mai 2010, 19:28
par stopher
Cela va dépendre aussi du navigateur ,

Chrome par exemple balance la sauce qu'à la fin compléte ( il posséde son propre buffer de sortie ) , alors que Firefox lui , fonctionne à merveille .
La configuration du serveur Web Apache IIS nginx ect .. peut aussi faire varier la façon dont est affiché le résultat .

Sinon , le code de Stealth35 est bien la bonne solution ...

Ch.

Re: affichage instantané

Posté : 05 mai 2010, 12:59
par Tatinos
Super merci beaucoup ! :D