OVH Cloud OVH Cloud

clic cote client et serveur en meme temps.

9 réponses
Avatar
Marc (Fr)
Bonjour,

je cherche à faire executer 2 pages aspx en meme temps. L'une créée des
fichiers Excel pendant 30 minutes environ, la seconde regarde ou la première
en est (en boucle) pour afficher un état d'avancement (i.e. une prograss
bar).

Seulement voila, lorsque je clique sur mon bouton 'générer les fichiers
Excel', le code client qui doit ouvrir la page 'progress bar' ne s'execute
que lorsque la procedure onclic du server est treminée (c'est à dire lorsque
mes fichiers excel sont finis) ...

Autrement dit, le code client semble faire un SUBMIT avant de faire mon
Window.open (pour ouvrir ma 2eme page aspx).

Donc ma question est la suivante, comment dois-je faire pour que ma 2eme
page s'ouvre avant que le code du boutton ne n'execute ?

Merci pour vos réponses passionnées ;-)

Marc.

9 réponses

Avatar
Paul Bacelar
http://msdn.microsoft.com/msdnmag/issues/03/12/DesignPatterns/
--
Paul Bacelar

"Marc (Fr)" wrote in message
news:
Bonjour,

je cherche à faire executer 2 pages aspx en meme temps. L'une créée des
fichiers Excel pendant 30 minutes environ, la seconde regarde ou la


première
en est (en boucle) pour afficher un état d'avancement (i.e. une prograss
bar).

Seulement voila, lorsque je clique sur mon bouton 'générer les fichiers
Excel', le code client qui doit ouvrir la page 'progress bar' ne s'execute
que lorsque la procedure onclic du server est treminée (c'est à dire


lorsque
mes fichiers excel sont finis) ...

Autrement dit, le code client semble faire un SUBMIT avant de faire mon
Window.open (pour ouvrir ma 2eme page aspx).

Donc ma question est la suivante, comment dois-je faire pour que ma 2eme
page s'ouvre avant que le code du boutton ne n'execute ?

Merci pour vos réponses passionnées ;-)

Marc.


Avatar
Marc (Fr)
merci pour l'interet porté a ma question mais cet article est long et il
devrait s'appeler 'la redirection pour les nuls' et pas 'Asynchronous Wait
State Pattern'

il propose finalement de découper ma procedure et de faire un reload entre
chaque avancée de la bar de progression... ou pire encore d'afficher une bar
finalement fictive qui avance "au pif" si on ne connait pas l'avance le temps
que va prendre le code... ce qui est dans la pratique toujours le cas. Bref,
un article comme ca dans les pages ms, c'est un peu navrant.

je cherche donc toujours comment permettre a une deuxieme page de s'executer
pendant qu'une premiere tourne dans une autre frame...


"Paul Bacelar" a écrit :

http://msdn.microsoft.com/msdnmag/issues/03/12/DesignPatterns/
--
Paul Bacelar

"Marc (Fr)" wrote in message
news:
> Bonjour,
>
> je cherche à faire executer 2 pages aspx en meme temps. L'une créée des
> fichiers Excel pendant 30 minutes environ, la seconde regarde ou la
première
> en est (en boucle) pour afficher un état d'avancement (i.e. une prograss
> bar).
>
> Seulement voila, lorsque je clique sur mon bouton 'générer les fichiers
> Excel', le code client qui doit ouvrir la page 'progress bar' ne s'execute
> que lorsque la procedure onclic du server est treminée (c'est à dire
lorsque
> mes fichiers excel sont finis) ...
>
> Autrement dit, le code client semble faire un SUBMIT avant de faire mon
> Window.open (pour ouvrir ma 2eme page aspx).
>
> Donc ma question est la suivante, comment dois-je faire pour que ma 2eme
> page s'ouvre avant que le code du boutton ne n'execute ?
>
> Merci pour vos réponses passionnées ;-)
>
> Marc.





Avatar
nicolas franchet
Pour l'ouverture de la page web, pourquoi ne pas mettre dans le
page_load de la page qui genere les fichiers XL un truc du style

this.Response.Write("<SCRIPT>window.open(LaPageQuiBouclePourSavoirOuCaEnEst);</Script>);
this.Response.Flush();

Nicolas

Marc (Fr) a écrit :
Bonjour,

je cherche à faire executer 2 pages aspx en meme temps. L'une créée des
fichiers Excel pendant 30 minutes environ, la seconde regarde ou la première
en est (en boucle) pour afficher un état d'avancement (i.e. une prograss
bar).

Seulement voila, lorsque je clique sur mon bouton 'générer les fichiers
Excel', le code client qui doit ouvrir la page 'progress bar' ne s'execute
que lorsque la procedure onclic du server est treminée (c'est à dire lorsque
mes fichiers excel sont finis) ...

Autrement dit, le code client semble faire un SUBMIT avant de faire mon
Window.open (pour ouvrir ma 2eme page aspx).

Donc ma question est la suivante, comment dois-je faire pour que ma 2eme
page s'ouvre avant que le code du boutton ne n'execute ?

Merci pour vos réponses passionnées ;-)

Marc.


Avatar
Marc (Fr)
dans ce cas, je pense que ca sera encore pire, puisqu'il faudra un
aller-retour serveur pour voir le script apparait dans la source de la page
apres le clic du bouton.

Par ailleurs, je me rend compte que, meme en lancant manuellement ma page de
statut qui boucle, puis la procedure qui génére les XLS, la page de statut ne
boucle plus (plus de refresh) ; donc, je pense que c'est un problème d'IE
qui ne peut pas charger 2 pages en même temps dans des frames différentes...

merci pour l'idee


"nicolas franchet" a écrit :

Pour l'ouverture de la page web, pourquoi ne pas mettre dans le
page_load de la page qui genere les fichiers XL un truc du style

this.Response.Write("<SCRIPT>window.open(LaPageQuiBouclePourSavoirOuCaEnEst);</Script>);
this.Response.Flush();

Nicolas

Marc (Fr) a écrit :
> Bonjour,
>
> je cherche à faire executer 2 pages aspx en meme temps. L'une créée des
> fichiers Excel pendant 30 minutes environ, la seconde regarde ou la première
> en est (en boucle) pour afficher un état d'avancement (i.e. une prograss
> bar).
>
> Seulement voila, lorsque je clique sur mon bouton 'générer les fichiers
> Excel', le code client qui doit ouvrir la page 'progress bar' ne s'execute
> que lorsque la procedure onclic du server est treminée (c'est à dire lorsque
> mes fichiers excel sont finis) ...
>
> Autrement dit, le code client semble faire un SUBMIT avant de faire mon
> Window.open (pour ouvrir ma 2eme page aspx).
>
> Donc ma question est la suivante, comment dois-je faire pour que ma 2eme
> page s'ouvre avant que le code du boutton ne n'execute ?
>
> Merci pour vos réponses passionnées ;-)
>
> Marc.



Avatar
nicolas franchet
Je vois pas en quoi cela serait pire. Le flush permet d'envoyer ce que
contient le buffer avant que la page soit fini de traite par le serveur.

Sinon, est-ce que le probleme ne viendrait pas du serveur qui est sature
par la creation des pages XL et donc ne peut plus repondre 'rapidement'
aux requetes web ?

Nicolas


Marc (Fr) a écrit :
dans ce cas, je pense que ca sera encore pire, puisqu'il faudra un
aller-retour serveur pour voir le script apparait dans la source de la page
apres le clic du bouton.

Par ailleurs, je me rend compte que, meme en lancant manuellement ma page de
statut qui boucle, puis la procedure qui génére les XLS, la page de statut ne
boucle plus (plus de refresh) ; donc, je pense que c'est un problème d'IE
qui ne peut pas charger 2 pages en même temps dans des frames différentes...

merci pour l'idee


"nicolas franchet" a écrit :


Pour l'ouverture de la page web, pourquoi ne pas mettre dans le
page_load de la page qui genere les fichiers XL un truc du style

this.Response.Write("<SCRIPT>window.open(LaPageQuiBouclePourSavoirOuCaEnEst);</Script>);
this.Response.Flush();

Nicolas

Marc (Fr) a écrit :

Bonjour,

je cherche à faire executer 2 pages aspx en meme temps. L'une créée des
fichiers Excel pendant 30 minutes environ, la seconde regarde ou la première
en est (en boucle) pour afficher un état d'avancement (i.e. une prograss
bar).

Seulement voila, lorsque je clique sur mon bouton 'générer les fichiers
Excel', le code client qui doit ouvrir la page 'progress bar' ne s'execute
que lorsque la procedure onclic du server est treminée (c'est à dire lorsque
mes fichiers excel sont finis) ...

Autrement dit, le code client semble faire un SUBMIT avant de faire mon
Window.open (pour ouvrir ma 2eme page aspx).

Donc ma question est la suivante, comment dois-je faire pour que ma 2eme
page s'ouvre avant que le code du boutton ne n'execute ?

Merci pour vos réponses passionnées ;-)

Marc.







Avatar
Marc (Fr)
je vais essayer le flush...

pour le probleme de ressource, c'est possible en effet, mais comment
'reserver' des ressources pour ma page progressbar ? ou comment définir des
priorités sur les pages ?


"nicolas franchet" a écrit :

Je vois pas en quoi cela serait pire. Le flush permet d'envoyer ce que
contient le buffer avant que la page soit fini de traite par le serveur.

Sinon, est-ce que le probleme ne viendrait pas du serveur qui est sature
par la creation des pages XL et donc ne peut plus repondre 'rapidement'
aux requetes web ?

Nicolas


Marc (Fr) a écrit :
> dans ce cas, je pense que ca sera encore pire, puisqu'il faudra un
> aller-retour serveur pour voir le script apparait dans la source de la page
> apres le clic du bouton.
>
> Par ailleurs, je me rend compte que, meme en lancant manuellement ma page de
> statut qui boucle, puis la procedure qui génére les XLS, la page de statut ne
> boucle plus (plus de refresh) ; donc, je pense que c'est un problème d'IE
> qui ne peut pas charger 2 pages en même temps dans des frames différentes...
>
> merci pour l'idee
>
>
> "nicolas franchet" a écrit :
>
>
>>Pour l'ouverture de la page web, pourquoi ne pas mettre dans le
>>page_load de la page qui genere les fichiers XL un truc du style
>>
>>this.Response.Write("<SCRIPT>window.open(LaPageQuiBouclePourSavoirOuCaEnEst);</Script>);
>>this.Response.Flush();
>>
>>Nicolas
>>
>>Marc (Fr) a écrit :
>>
>>>Bonjour,
>>>
>>>je cherche à faire executer 2 pages aspx en meme temps. L'une créée des
>>>fichiers Excel pendant 30 minutes environ, la seconde regarde ou la première
>>>en est (en boucle) pour afficher un état d'avancement (i.e. une prograss
>>>bar).
>>>
>>>Seulement voila, lorsque je clique sur mon bouton 'générer les fichiers
>>>Excel', le code client qui doit ouvrir la page 'progress bar' ne s'execute
>>>que lorsque la procedure onclic du server est treminée (c'est à dire lorsque
>>>mes fichiers excel sont finis) ...
>>>
>>>Autrement dit, le code client semble faire un SUBMIT avant de faire mon
>>>Window.open (pour ouvrir ma 2eme page aspx).
>>>
>>>Donc ma question est la suivante, comment dois-je faire pour que ma 2eme
>>>page s'ouvre avant que le code du boutton ne n'execute ?
>>>
>>>Merci pour vos réponses passionnées ;-)
>>>
>>>Marc.
>>



Avatar
Marc (Fr)
bon donc pas de succes pour le response.write et flush... d'ailleurs, je n'ai
jamais reussi a utiliser le flush mais ca c'est une autre histoire.



"nicolas franchet" a écrit :

Je vois pas en quoi cela serait pire. Le flush permet d'envoyer ce que
contient le buffer avant que la page soit fini de traite par le serveur.

Sinon, est-ce que le probleme ne viendrait pas du serveur qui est sature
par la creation des pages XL et donc ne peut plus repondre 'rapidement'
aux requetes web ?

Nicolas


Marc (Fr) a écrit :
> dans ce cas, je pense que ca sera encore pire, puisqu'il faudra un
> aller-retour serveur pour voir le script apparait dans la source de la page
> apres le clic du bouton.
>
> Par ailleurs, je me rend compte que, meme en lancant manuellement ma page de
> statut qui boucle, puis la procedure qui génére les XLS, la page de statut ne
> boucle plus (plus de refresh) ; donc, je pense que c'est un problème d'IE
> qui ne peut pas charger 2 pages en même temps dans des frames différentes...
>
> merci pour l'idee
>
>
> "nicolas franchet" a écrit :
>
>
>>Pour l'ouverture de la page web, pourquoi ne pas mettre dans le
>>page_load de la page qui genere les fichiers XL un truc du style
>>
>>this.Response.Write("<SCRIPT>window.open(LaPageQuiBouclePourSavoirOuCaEnEst);</Script>);
>>this.Response.Flush();
>>
>>Nicolas
>>
>>Marc (Fr) a écrit :
>>
>>>Bonjour,
>>>
>>>je cherche à faire executer 2 pages aspx en meme temps. L'une créée des
>>>fichiers Excel pendant 30 minutes environ, la seconde regarde ou la première
>>>en est (en boucle) pour afficher un état d'avancement (i.e. une prograss
>>>bar).
>>>
>>>Seulement voila, lorsque je clique sur mon bouton 'générer les fichiers
>>>Excel', le code client qui doit ouvrir la page 'progress bar' ne s'execute
>>>que lorsque la procedure onclic du server est treminée (c'est à dire lorsque
>>>mes fichiers excel sont finis) ...
>>>
>>>Autrement dit, le code client semble faire un SUBMIT avant de faire mon
>>>Window.open (pour ouvrir ma 2eme page aspx).
>>>
>>>Donc ma question est la suivante, comment dois-je faire pour que ma 2eme
>>>page s'ouvre avant que le code du boutton ne n'execute ?
>>>
>>>Merci pour vos réponses passionnées ;-)
>>>
>>>Marc.
>>



Avatar
Marc (Fr)
voila ce que je cherchais... c'est en anglais, en C# et un peu costaud mais
ca semble fonctionner.

http://www.asp101.com/articles/matt/progressbar/default.asp



"Marc (Fr)" a écrit :

Bonjour,

je cherche à faire executer 2 pages aspx en meme temps. L'une créée des
fichiers Excel pendant 30 minutes environ, la seconde regarde ou la première
en est (en boucle) pour afficher un état d'avancement (i.e. une prograss
bar).

Seulement voila, lorsque je clique sur mon bouton 'générer les fichiers
Excel', le code client qui doit ouvrir la page 'progress bar' ne s'execute
que lorsque la procedure onclic du server est treminée (c'est à dire lorsque
mes fichiers excel sont finis) ...

Autrement dit, le code client semble faire un SUBMIT avant de faire mon
Window.open (pour ouvrir ma 2eme page aspx).

Donc ma question est la suivante, comment dois-je faire pour que ma 2eme
page s'ouvre avant que le code du boutton ne n'execute ?

Merci pour vos réponses passionnées ;-)

Marc.


Avatar
Paul Bacelar
Monsieur est un killer, à l'entendre.

Alors monsieur saurait que son approche est totalement absurde et que
l'article montre une méthode des plus robustes contrairement à la sienne.
Navrant, c'est votre capacité à complexifier les choses simples.

Je vous ai fournis ce lien pour vous poser les bonnes questions et pas pour
évaluer la pertinence de votre solution.

Si vous vous étiez poser les bonnes questions, vous n'auriez pas jugé aussi
légèrement cet article et vous auriez bien mieux circonstancié votre
question.



Mais comme c'est un killer, il doit connaître les "Script Callbacks"

http://msdn.microsoft.com/msdnmag/issues/04/08/CuttingEdge/

http://msdn.microsoft.com/msdnmag/issues/04/12/CuttingEdge/

http://msdn.microsoft.com/msdnmag/issues/05/01/CuttingEdge/default.aspx



Avant de juger de la simplicité d'une solution, penser au principe du KISS
(Keep It Simple and Stupid) car nous serons toujours le con de quelqu'un.

Si les solutions proposées ne sont pas adaptées à votre problématique, il
faut dire en quoi. Rien dans votre poste initial ne permettait de connaître
quoi que se soit de votre problème, car elle se focalisait sur votre
pitoyable solution sans nous exposer la problématique qu'elle était sensé
résoudre.

Oui, je suis de mauvaise humeur, mais avec votre attitude vous n'aurez que
cela, ou l'indifférence à votre problème.


--
Paul Bacelar

Microsoft MVP Visual C++

"Marc (Fr)" wrote in message
news:
merci pour l'interet porté a ma question mais cet article est long et il
devrait s'appeler 'la redirection pour les nuls' et pas 'Asynchronous Wait
State Pattern'

il propose finalement de découper ma procedure et de faire un reload entre
chaque avancée de la bar de progression... ou pire encore d'afficher une


bar
finalement fictive qui avance "au pif" si on ne connait pas l'avance le


temps
que va prendre le code... ce qui est dans la pratique toujours le cas.


Bref,
un article comme ca dans les pages ms, c'est un peu navrant.

je cherche donc toujours comment permettre a une deuxieme page de


s'executer
pendant qu'une premiere tourne dans une autre frame...


"Paul Bacelar" a écrit :

> http://msdn.microsoft.com/msdnmag/issues/03/12/DesignPatterns/
> --
> Paul Bacelar
>
> "Marc (Fr)" wrote in message
> news:
> > Bonjour,
> >
> > je cherche à faire executer 2 pages aspx en meme temps. L'une créée


des
> > fichiers Excel pendant 30 minutes environ, la seconde regarde ou la
> première
> > en est (en boucle) pour afficher un état d'avancement (i.e. une


prograss
> > bar).
> >
> > Seulement voila, lorsque je clique sur mon bouton 'générer les


fichiers
> > Excel', le code client qui doit ouvrir la page 'progress bar' ne


s'execute
> > que lorsque la procedure onclic du server est treminée (c'est à dire
> lorsque
> > mes fichiers excel sont finis) ...
> >
> > Autrement dit, le code client semble faire un SUBMIT avant de faire


mon
> > Window.open (pour ouvrir ma 2eme page aspx).
> >
> > Donc ma question est la suivante, comment dois-je faire pour que ma


2eme
> > page s'ouvre avant que le code du boutton ne n'execute ?
> >
> > Merci pour vos réponses passionnées ;-)
> >
> > Marc.
>
>
>