|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : juin 2002 Messages : 346 ![]() |
Bonjour,
je suis sur OVH mutualisé et je cherche a afficher dans une boucle while plusieurs resultats de requetes mysql dans des echo.mais la page s'affiche que lorsque tout est fini. j'ai essayé d'inserer la fonction flush et ob_flush mas ca ne fonctionne apparement pas sur ovh mutualisé voici mon code : Code :
__________________
Ingénieur R&D Casual Gaming / Mobile |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
Pour faire ce genre d'affichage progressif, je pense qu'il faut plutôt utiliser AJAX
__________________
Modérateur PHP |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : juin 2002 Messages : 346 ![]() |
J'ai cherché partout mais je ne trouve pas d'exemple de code
__________________
Ingénieur R&D Casual Gaming / Mobile |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Omar Inscription : septembre 2010 Messages : 146 ![]() |
Salut,
ça ne marchera pas avec php car tout simplement le navigateur ne reçoit aucune donnée du serveur juste après que le serveur finisse tout son travail. sleep ne ralentit pas l'affichage mais ralentit seulement l’exécution ça n'a rien à voir avec l'affichage.pour ce genre de trucs tu peux utiliser ajax ou bein une bibliothèque javascript qui supporte ajax comme jquery. bonne chance. |
|
|
01
|
|
|
#5 | |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 802 ![]() |
Citation:
Lis donc la documentation de la fonction flush() et tu apprendras qu'elle permet d'envoyer avant la fin du script le buffer au navigateur. Cela dit il est aussi mentionné que cela ne fonctionnait pas sous certains serveurs et qu'il n'envoyait qu'à la fin. Ou même des problèmes de navigateur qui attend d'avoir tout reçu pour afficher (Netscape d'après la documentation), ou bien certaines version de IE qui attendent une taille minimum du buffer à afficher (256 octets). |
|
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Omar Inscription : septembre 2010 Messages : 146 ![]() |
Personnellement, connaissant comment les technologies coté serveurs fonctionnent, je n'arrive pas à imaginer comment une seule requête HTTP va faire deux allers/retours au/du serveur?
|
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : juin 2002 Messages : 346 ![]() |
Euh dans mon cas pas besoin d'aller retour de requete http je veux juste afficher les données d'un tableau petit a petit apres chaque envoi de mail $resultat['email'] apres ma configuration serveur ne me permets surement pas de vider le buffer du serveur web je pense d'ou mon probleme.
__________________
Ingénieur R&D Casual Gaming / Mobile |
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Omar Inscription : septembre 2010 Messages : 146 ![]() |
Pour ton problème, je pense que tu dois absolument passer par AJAX.Si vous n'avez déjà travaillé avec AJAX essaye d'utiliser la bibliothèque de javascript jQuery, elle est facile à apprendre et à utiliser en plus ça facilite beaucoup les requêtes AJAX.
|
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 802 ![]() |
Citation:
L'entête HTTP est envoyée lors du premier envoi, le reste suit au fur et à mesure tout simplement. C'est un peu comme du streaming en gros. Après il y a des navigateurs qui ne le gère pas et qui attendent d'avoir reçu la fin du fichier (dernier envoi buffer) avant de traiter la requête tout simplement... Sature ta connexion et testes plusieurs sites relativement lent avec différents navigateurs. Cela reproduit le même effet navigateur. Certains navigateurs t'afficheront une page blanche puis la page d'un seul bloc. D'autres t'afficherons la page au fur et à mesure qu'ils téléchargent le retour de la requête. Donc sur ce point je mettrai ton absolument entre parenthèse. Cela dit, je rejoins tes conseils, pour une telle chose il est préférable de passer par de l'ajax. |
|
|
|
00
|
|
|
#10 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Salut
Quelqu'un sur le forum de PHP à trouvé un moyen simple: Code :
C'est une façon de faire particulièrement immonde réservée à de très rares cas. Préfère l'utilisation d'Ajax à cette technique maudite.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#11 |
|
Membre habitué
![]() Inscription : juin 2002 Messages : 346 ![]() |
J'ai testé cette solution elle ne fonctionne pas sur mon serveur en tout cas. je vais regarder du coté de Jquery.
__________________
Ingénieur R&D Casual Gaming / Mobile |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com