Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2540 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  php et bar de progression

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

php et bar de progression

n°1020764
zizou39
Posté le 22-03-2005 à 11:11:13  profilanswer
 

Bonjour à tous. J'ai une page qui m'affiche des stats et qui est très longue à chargé. Comment faire pour faire appaître une bar de progression pendant le temps de chargement.

mood
Publicité
Posté le 22-03-2005 à 11:11:13  profilanswer
 

n°1020767
Hermes le ​Messager
Breton Quiétiste
Posté le 22-03-2005 à 11:12:29  profilanswer
 

Rien à voir avec du PHP. C'est du JS qu'il te faudrait, mais je te conseille d'oublier cette mauvaise idée, car du coup, tu vas rendre ta page moins accessible...

n°1020799
esox_ch
Posté le 22-03-2005 à 11:32:47  profilanswer
 

Je crois que c'est aussi possible avec des activeX... Mais niveau accessibilité ... C'est vraiment terrible... Pourquoi ne pas juste mettre un petit gif qui dit "Chargement en cours"


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1020807
zizou39
Posté le 22-03-2005 à 11:40:38  profilanswer
 

je veux bien mettre un gif mais comment le voir apparaitre avant que ma page soit chargée.
 
J'ai essayé de faire :  

Code :
  1. <body onload="alert('chargement')">


 
mais mon message s'affiche seulement lorsque ma page est totalement affichée et donc complétement chargée

n°1020813
esox_ch
Posté le 22-03-2005 à 11:51:39  profilanswer
 

ob_start et ob_flush devraient t'aider :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1020819
zizou39
Posté le 22-03-2005 à 11:56:51  profilanswer
 

donc je mets mon image puis je fais
 

Code :
  1. ob_start();
  2. tout mes traitements
  3. affichage
  4. ob_end_flush();


Message édité par zizou39 le 22-03-2005 à 11:57:20
n°1020834
harrysauce
Miaaaooou!
Posté le 22-03-2005 à 12:14:24  profilanswer
 

zizou39 a écrit :

Bonjour à tous. J'ai une page qui m'affiche des stats et qui est très longue à chargé. Comment faire pour faire appaître une bar de progression pendant le temps de chargement.


Faut se mettre la pression :whistle:  
 
Bon sinon ça serait plus un truc du genre :
 
ob_start();
//Affichage du gif de chargement
 
ob_flush();
//Traitement

n°1020876
cerel
Posté le 22-03-2005 à 13:07:46  profilanswer
 

zizou39 a écrit :

Bonjour à tous. J'ai une page qui m'affiche des stats et qui est très longue à chargé. Comment faire pour faire appaître une bar de progression pendant le temps de chargement.

Hmmm, je sais pas si tu es au courant, mais les navigateurs font deja ca ...
Regarde sur la barre de status en bas, tu verras qu'il y a une barre de progression pendant le chargement des pages.
 

zizou39 a écrit :

je veux bien mettre un gif mais comment le voir apparaitre avant que ma page soit chargée.
 
J'ai essayé de faire :  

Code :
  1. <body onload="alert('chargement')">


 
mais mon message s'affiche seulement lorsque ma page est totalement affichée et donc complétement chargée

Normal, "onload" est un evenement qui s'execute une fois la page chargee...
 
Personnellement je ne pense pas que ob_start et ob_flush soit vraiment la solution.
Je conseilerais plutot de metre un JS dans le head de la page, ce dernier affiche un message d'attente.
Et une fois la page chargee, un JS est lance grace a "onload" pour effacer le message d'attente.


Message édité par cerel le 22-03-2005 à 13:11:40
n°1021671
harrysauce
Miaaaooou!
Posté le 23-03-2005 à 04:41:47  profilanswer
 

cerel a écrit :

Hmmm, je sais pas si tu es au courant, mais les navigateurs font deja ca ...
Regarde sur la barre de status en bas, tu verras qu'il y a une barre de progression pendant le chargement des pages.
 
Normal, "onload" est un evenement qui s'execute une fois la page chargee...
 
Personnellement je ne pense pas que ob_start et ob_flush soit vraiment la solution.
Je conseilerais plutot de metre un JS dans le head de la page, ce dernier affiche un message d'attente.

Et une fois la page chargee, un JS est lance grace a "onload" pour effacer le message d'attente.


Alors là je serais sacrément curieux de savoir pourquoi???
 
Avec les ob_start/ob_flush vu que c'est éxécuté côté serveur t'es sûr que ça sera compatible partout, ce qui n'est pas le cas du JS [:spamafote]

n°1021689
esox_ch
Posté le 23-03-2005 à 08:22:12  profilanswer
 

Probablement parceque le ob_start / ob_flush est qqch de pas particulierement "Joli" (il peut afficher seulement des caracteres) et une fois le chargement fini, on doit afficher un lien pour rediriger sur une autre page (ou alors utiliser kan mm du JS). Si dans php il y avait la gestion des threads on pourrait probablement faire qqch de plus style (1 thread upload et l'autre affiche le %tage en meme temps) mais vu que c'est pas le cas ...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 23-03-2005 à 08:22:12  profilanswer
 

n°1021816
cerel
Posté le 23-03-2005 à 10:43:30  profilanswer
 

harrysauce a écrit :

Alors là je serais sacrément curieux de savoir pourquoi???
 
Avec les ob_start/ob_flush vu que c'est éxécuté côté serveur t'es sûr que ça sera compatible partout, ce qui n'est pas le cas du JS [:spamafote]


 
Dans le premier message zizou39 dit qu'il a une page longue a charger.
Ici 2 possibilitees.  
1) C'est une page longue a generer.
2) C'est une page longue a envoyer au client (ou le client mets du temps a charger la page.
 
1) Ob_start et ob_flush servent a utiliser un buffer. En gros, lors du traitement de son script, toutes le donnees seront stockees dans le buffer. Un fois que le script a fini de generer les stats, on fait un ob_flush et le buffer est envoye au client.
 
Probleme : Ca ne resout en rien le probleme. Le script metra toujours le meme temps pour generer ses stats.
 
2) Admetons que la generation soit rapide, mais que le probleme de lenteur vienne du client. Ben un ob_start et ob_flush ne vont rien resoudre puisque la meme quantitee de donees devra etre envoye. Seule diffenrece, avec un ob_start et ob_flush on envoi toutes les donees d'un coup, au lieu de les envoyer a comptes goutes.
 
Probleme : Ca ne resoud toujorus pas le probleme, car le client recoit toutes les donees d'un coup, et qu'il les recoive au compte goutes ou non ca ne change pas beacoup (ormis le temps de generation des stats).
 
 
Ce que je propose et de metre un script js dans le head de la page, et de ne pas utiliser ob_start ni ob_flush.
De cette facon, le client recoit les donees au compte goutes. Des que le head en entier est recu, le navigateur va executer le js a l'interieur. Ce dernier doit afficher un message d'attente.
 
Un fois toute la page recu, le "body onload" est execute par le navigatuer. A ce moment, le script lance doit effacer le message d'attente.
 
Et voila, nous avons mis en place un systeme qui affiche un message d'attente lors du chargement de la page. (Qui fonctionne dans le cas 1 et 2).
 
 

esox_ch a écrit :

Probablement parceque le ob_start / ob_flush est qqch de pas particulierement "Joli" (il peut afficher seulement des caracteres) et une fois le chargement fini, on doit afficher un lien pour rediriger sur une autre page (ou alors utiliser kan mm du JS). Si dans php il y avait la gestion des threads on pourrait probablement faire qqch de plus style (1 thread upload et l'autre affiche le %tage en meme temps) mais vu que c'est pas le cas ...


Pas du tout, ob_start et ob_flush servent a "bufferiser" le resultat. En gros on stocke tout dans un buffer avant de l'envoyer au client.
Ca resoud notament les scripts mal fait qui utilisent "header".
Ca permet egalement de compresser les donees a envoyer si le browser enface le supporte (donc du coup economiser en bande passante :p)


Message édité par cerel le 23-03-2005 à 10:46:25
n°1021826
rompi
Posté le 23-03-2005 à 10:46:51  profilanswer
 

5° topic sur le sujet en faisant une recherche simple et rapide...

n°1021856
esox_ch
Posté le 23-03-2005 à 11:15:22  profilanswer
 

> Cerel, si avant de commancer a processer ses stat il fait un  
echo "Veuillez patienter SVP";
ob_flush();
 
le client verra le message lui demandant de patienter et evitera de cliquer 15x sur la touche F5, c'est a ca que sert cette fonction (le truc de header , comme tu le dis, c'est en cas ou le script est mal fait)

n°1021980
KangOl
Profil : pointeur
Posté le 23-03-2005 à 12:36:50  profilanswer
 

esox_ch a écrit :

> Cerel, si avant de commancer a processer ses stat il fait un  
echo "Veuillez patienter SVP";
ob_flush();
 
le client verra le message lui demandant de patienter et evitera de cliquer 15x sur la touche F5, c'est a ca que sert cette fonction (le truc de header , comme tu le dis, c'est en cas ou le script est mal fait)


oui mais pour faire propre, faudras quand meme du js pour l'enlever...
 
je propose quelque chose du genre...
http://kangol.prout.be/tests/load.html (ctrl-F5 si vous voulez retester)


---------------
Nos estans firs di nosse pitite patreye...
n°1021994
esox_ch
Posté le 23-03-2005 à 12:40:35  profilanswer
 

Oui c'est pas mal un truc du genre ... Mais faudrait quand meme un moyen de l'enlever pour ceux sans JS


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  php et bar de progression

 

Sujets relatifs
Barre de progression pour chargement FTPHTTPConnection et barre de progression
Indicateur de progression dans une JFramePb barre de progression
faire une barre de progression pour chargement appli[Applet]Petit pbs pour une barre de progression
ASP-Barre de progressionbarre de progression
[PHP] Upload et barre de progression[VC++] barre de progression et bouton annuler
Plus de sujets relatifs à : php et bar de progression


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)