ProgressBar Ajax

Résolu/Fermé
MysticSquall Messages postés 402 Date d'inscription lundi 4 juillet 2005 Statut Membre Dernière intervention 7 octobre 2011 - 11 mai 2011 à 16:58
MysticSquall Messages postés 402 Date d'inscription lundi 4 juillet 2005 Statut Membre Dernière intervention 7 octobre 2011 - 12 mai 2011 à 11:57
Bonjour,

Je souhaite mettre en place une barre de progression en fonction du chargement d'un fichier PHP, le tout en AJAX.

Autrement dit, je click sur un bouton, sur ma page principale, la barre de progression s'affiche, et un fichier PHP est appelé en ajax.

Pendant que ce fichier charge, il envoi des information a ma page principale, relative a la progression, retransmise a ma barre de progression grâce au javascript.

Lorsque la page PHP à finie, elle recharge ma page principale.

Là où je bloque c'est sur la communication entre mon javascript, et la page PHP qui charge..Comment les faire communiquer ?

J'ai regardé du côté de APC, qui sera nativement inclut dans PHP 6...mais d'après ce que j'ai compris, ce n'est que pour l'upload de fichier.

Ensuite, la fonction "onreadystatechange" ne me permet pas de savoir où se situe le traitement dans mon fichier PHP...

Des idées :-) ?

Merci d'avance !

2 réponses

Profil bloqué
12 mai 2011 à 11:31
Bonjour,

dans le script php, as-tu essayé de:
- envoyer au fur et à mesure l'étape en cours avec echo() + fush(),
- réceptionner l'étape en cours dans onreadystatechange.

Une solution également est d'appeler plusieurs fois le script PHP.
Si cela est possible, décomposer le traitement PHP en plusieurs étapes puis appeler chaque étape dans une boucle ajax:
-> ajax.get(script.php?etape=1)
-> ajax.onreadystatechange(progression=1;ajax.get(script.php?etape=2) )
et ainsi de suite
0
MysticSquall Messages postés 402 Date d'inscription lundi 4 juillet 2005 Statut Membre Dernière intervention 7 octobre 2011 27
12 mai 2011 à 11:57
Effectivement, cela peut-être une solution.

Je me suis orienté du côté de la Zend_Progress_Bar, avec une iframe qui appelle la méthode update de la page parent.

L'iframe transmet automatiquement l'état du chargement de la page en pourcentage, et donc on peu incrémenter notre barre sur la page mère.

voir la documentation sur le site de Zend pour les curieux ^^'

Bonne journée
0

Discussions similaires