[RESOLU] Envoyer la sortie echo à l'internaute pendant le chargement

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Envoyer la sortie echo à l'internaute pendant le chargement

Re: Envoyer la sortie echo à l'internaute pendant le chargem

par xTG » 20 nov. 2012, 14:34

Je complète les propos de Saian.

Certains navigateurs attendent la totalité de la réponse à la requête HTTP avant de parser quoi que ce soit (et donc d'afficher).
Donc même avec un forçage de l'envoi du buffer on a pas toujours l'effet souhaité à cause du client.

L'Ajax reste donc LA solution.
Bien qu'on rencontre toujours un problème d'ordre client, à savoir si le JS est activé ou non.

Re: Envoyer la sortie echo à l'internaute pendant le chargem

par Saian » 20 nov. 2012, 13:12

Théoriquement il faudrait forcer l'envoi du buffer de sorti au navigateur.
On utilise pour ça la fonction flush (qui vide le buffer au passage). Mais dans la pratique c'est pas toujours très efficace.

Sinon tu peux faire une page qui affiche "Chargement" et fait un appel ajax pour exécuter ta fonction lente.

Envoyer la sortie echo à l'internaute pendant le chargement

par Ceubex » 20 nov. 2012, 12:38

Bonjour,

J'ai une page dans le chargement est long. Je voudrais mettre un message à l'internaute du style "le chargement est en cours, vous en êtes à l'étape X". Le soucis c'est que si je fais

Code : Tout sélectionner

echo "Chargement"; fonctionLente();
Chargement ne s'affiche pas. Je n'ai qu'une page blanche qui se charge et après tout s'affiche d'un coup. Comment puis-je dire à PHP d'envoyer d'abord ce bout de page puis le reste ensuite ?

Merci