Comment afficher "veuillez patienter...." pendant que la page est partie au ser

SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010 - 10 déc. 2005 à 16:49
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Derniè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

12 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
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


<HR>
Cyril - MVS - MCP ASP
0
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
11 déc. 2005 à 11:10
Bon j'ai du boulot, car je n'ai pas la moindre idée de ce que peut être "une requête via ajax", je dois me renseigner !
@+ Gilles
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
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/


<HR>
Cyril - MVS - MCP ASP
0
cs_AC1 Messages postés 116 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 25 mars 2010
13 déc. 2005 à 10:48
Bonjour,
je suis dans le même cas que Gilles avec le même besoin. Je suis le dossier avec vous.
Alain
AC1
Databases on the Web & on the LAN
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Derniè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?

@+ gilles
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
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é ;)


<HR>
Cyril - MVS - MCP ASP
0
javajavajava Messages postés 35 Date d'inscription vendredi 16 septembre 2005 Statut Membre Dernière intervention 15 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é ?

Merci d'avance :)
0
cs_NEVERFORGET Messages postés 21 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 23 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.


 
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
5 janv. 2008 à 12:28
Si ca c'est pas de la mauvaise langue ....
http://blogs.developpeur.org/cyril/archive/tags/Javascript+_3A00_+un+langage+incompris/default.aspx
http://blogs.developpeur.org/cyril/archive/category/1358.aspx

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 ...

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
cs_NEVERFORGET Messages postés 21 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 23 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.
0
cs_AC1 Messages postés 116 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 25 mars 2010
5 janv. 2008 à 14:08
Hey

Tu as peut-être taison, mais pas la peine d'être agressif fusse par mail interposé.

Cyril n'a paut-être pas répondu à ta question, mais nous avons tous nos contraintes et il répond aussi à beaucoup d'autres questions.

En tout cas, merci de tes recherchers approfondies et keep smiling.

Quant aux jambes de SUPERBOULY j'attends de voir (;-)

A+

AC1
Databases on the Web & on the LAN
0
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Derniè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
0
Rejoignez-nous