Comment afficher "veuillez patienter...." pendant que la page est partie au ser
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010
-
10 déc. 2005 à 16:49
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010
-
5 janv. 2008 à 16:15
Bonjour,
Quand la page part au serveur, généralement tout s'efface pendant que le serveur bosse et le résultat vient remplacer la page blanche.
Sur certains sites, s'affiche : "Veuillez patienter etc." et pas de page blanche. et hop la page-résultat s'affiche. Comment fait-on ?
merci du tuyau
Gilles
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 10 déc. 2005 à 17:32
Regarde sur le site y'a des sources qui font des bidouilles du genre ... en gros, ils envoient un bout de la page avant la fin, puis une fois la page finit de se faire ils envoient le reste qui passe par dessus.
Perso j'aime pas trop, ces méthodes ...
Le mieux est quand meme d'optimiser le serveur :) et si vraiment t'as une tache lourde à faire, tu la fait aynchrone via javascript, ok la c'est mon coté javascriptite aigue qui prend le dessus, mais moi je ferais en gros :
je clique sur un bouton, je fais une requete ajax, qui appelle une page qui lance le bordel, puis au cours de ta longue opération, tu trouves le moyen de connaitre l'etat, et toutes les n ms ou autres, tu écrit l'avancement dans une variable session. Tu fais une deuxieme page, qui lui ne fait qu'afficher l'avancement.
En gros ca te donne ca :
l'user clique sur un bouton
Tu emets une requete via ajax vers la page lourd.aspx
Tu emets une requete via ajax vers getavancement.aspx toutes les n ms. Cette page ne fait qu'afficher la variable session.
js analye cette requete, et affiche l'avancement au client
lourd.aspx met à jour une variable session
requete via getAvancement.aspx
la requete sur lourd.aspx est finit, tu le dit dans la page, le js qui a lancé la requete voit la fin de la page, analyse la réponse, est dit à l'user que le travail est finit
Voila qui peut etre marrant à faire :)
si j'ai le temps (donc n'y compte pas trop (faudra insister ;)) je te ferais un petit exemple avec de
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 11 déc. 2005 à 13:05
Effectivement si tu ne sais pas ce que c'est qu'une requete ajax, tu as un peu de boulot ;-)
mais tout le monde en parle en ce moment, ce ne sera donc pas difficile de trouver ca :) généralement les exemples qu'on voit pour Ajax sont trés limité, ton cas me semble interessant, je vais voir cette aprés midi si j'ai le temps :)
Mais ca risque d'etre fortement lié à javascript, va donc falloir te renseigner sur le fonctionnement de js : ca tombe bien je suis justement en train de faire des articles sur js sur mon blog ;) ! http://blog.developpeur.org/cyril/
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010 13 déc. 2005 à 19:08
Bon, j'ai finalement trouvé tout seul un truc bien simple.
Je ne l'ai pas testé en ligne, mais y a aucune raison pour que ça ne marche pas :
1. je cree un label "lbPatient"
2.Dans le page-Load, j'ajoute un script-client à mon bouton de validation:
dim monscript as string
monscript="javascript:document.getElementById('lbPatient').innerHTML='Veuillez patienter...'
MonBouton.attributes.Add("onclick",monscript)
Dans la routine de validationexecutée sur le serveur,MonBouton.click, je termine par : lbPatient.text=""
et voilà le travail, à un détail près ce n'est que ça
Bon, ça m'évite ajax?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 13 déc. 2005 à 21:04
Ben si, ca va pas marcher ...
quand tu cliques sur le bouton, tu vas lancer ta requete, donc tu peux deja oublier ta page ..
Mais, j'ai pensé à un truc qui pourrait etre sympa à faire, je l'explique pas la car c'est hyper compliqué, en gros un control "jemerappellepluslenom" qui permet d'avoir l'avancement, je vais lui mettre quelques propriétés qui définira l'intervalle de temps à vérifier, un evenenement qui permettra de vérifier etc... bref, j'ai ca dans ma tete, faut juste que je trouve le temps de le faire et sans utiliser tout mon framework js qui est en cours de dev ....
Je te paserais peut etre une version de dev quand j'aurais avancé ;)
javajavajava
Messages postés35Date d'inscriptionvendredi 16 septembre 2005StatutMembreDernière intervention15 janvier 2007 22 déc. 2006 à 14:46
Bonjour,
j'essaie actuellement de mettre en place un systeme "d'attente" pour le client avec message "Veuillez patienter", comme SuperBouly l'a suggéré.
J'aimerai le faire avec Ajax, mais je ne sais trop comment m'y prendre, qq'un a des exemples ? ou un code dont je pourrai m'inspiré ?
cs_NEVERFORGET
Messages postés21Date d'inscriptiondimanche 10 octobre 2004StatutMembreDernière intervention23 juin 2008 5 janv. 2008 à 10:52
"ca tombe bien je suis justement en train de faire des articles sur js sur mon blog ;) ! http://blog.developpeur.org/cyril/"
Ben j'ai été voir sur son blog. En considérant que le message susmentionné à été posté le 13.12.2005, soit depuis plus de deux ans et que rien n'a bougé depuis, on peut dire que là, Jésus fait pas des miracles ^^.
Je recherche aussi une solution pour mettre un message "veuillez patienter..." ou une barre de progression pendant le téléchargement d'une vidéo flash (.swf) pour que les visiteurs ne pensent pas que leur navigateur s'est planté et j'ai pas encore trouvé, malgré une recherche intensive depuis quelques temps sur le net.
Alors si qqun pouvait me donner un script qui fontionne (et pas seulement des indications vagues faites en partie d'anglicismes qui pour moi ne veulent pas dire grand-chose), ça m'aiderait.
Merci.
Je pense pas que tu puisses dire que j'ai pas bloggé sur JavaScript ... après c'est sur que j'ai peut être pas donné exactement la solution à ton problème ...
Si tu avais regardé un peu mieux, je suis sur que tu aurais aussi entendu parlé d'un UpdateProgress qui permet de faire exactement ce que la question demandait en très peu de temps ...
cs_NEVERFORGET
Messages postés21Date d'inscriptiondimanche 10 octobre 2004StatutMembreDernière intervention23 juin 2008 5 janv. 2008 à 13:36
J'ai pas dit que tu avais pas bloggé sur javascript.
Toutefois je te renvoie à la première question de SuperBouly qui est le thème de cette page.
Or tu nous mets des liens sur ton blog qui ne concerne pas du tout sa demande.
Tu parles de trouver la solution ("...j'ai ca dans ma tete, faut juste que je trouve le temps de le faire...")
mais depuis, rien n'a bougé sur ce sujet précis.
Ca lui fait une belle jambe à SuperBouly tes liens avec plein de javascripts qui concerne tout sauf une
réponse à sa question.
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010 5 janv. 2008 à 16:15
bonjour,
bon, mes jambes n'ont pas grand intéret, qu'on se passe l'info !
Je profite de vos échanges pour poser la question :
Je sais mettre en oeuvre l'Updateprogress lors d'un postBack, c'est très aisé, comme l'a fait remarquer JesusOnLine. Mais comment faire pour le premier chargement, si celui-ci est long?
Je pense à un pdf plein de photos, venant d'un rapport .rdlc par exemple ...
merci pour vos échanges
Gilles