Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Evénement refresh

11 réponses
Avatar
Oriane
Bonjour,

quel événement est déclenché lorsqu'on rafraichit (avec F5 sous IE, cad en
redemandant la même URL) une page aspx ? Je voudrais effectuer une action
particulière dans mon code. Je pensais à l'evt OnLoad mais apparemment c'est
un evt déclenché à chaque fois que la page en regénérée. Moi je veux
effectuer une action uniquement en cas de refresh mais pas lorsque
l'utilisateur clique sur un bouton POSTBACK...

Oriane

10 réponses

1 2
Avatar
Patrice
A priori ca n'existe pas de base car l'idée est que cela équivaut à refaire
ce que l'on vient de faire. Eventuellement trapper par exemple les touches
ou vérifier que la requête HTTP est la même que la dernière ?

Le mieux est sans doute d'expliquer ce que tu cherches à faire (différence
entre le 1er affichage et le refresh ?) des fois que qq ait une meilleure
idée pour traiter le problème que cela pose...

--
Patrice

"Oriane" a écrit dans le message de news:

Bonjour,

quel événement est déclenché lorsqu'on rafraichit (avec F5 sous IE, cad en
redemandant la même URL) une page aspx ? Je voudrais effectuer une action
particulière dans mon code. Je pensais à l'evt OnLoad mais apparemment
c'est un evt déclenché à chaque fois que la page en regénérée. Moi je veux
effectuer une action uniquement en cas de refresh mais pas lorsque
l'utilisateur clique sur un bouton POSTBACK...

Oriane


Avatar
Fred
Dans : news:%,
Patrice disait :

A priori ca n'existe pas de base



Exactement, car le protocole http est sans état.

vérifier que la requête HTTP est la même que
la dernière ?



Ça c'est possible en utilisant les sessions asp .NET et ne vois pas
d'autres solutions (à part redévelopper quelquechose qui serait
nécessairement un sous-ensemble de l'état de session).

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Avatar
Oriane
Bonjour Patrice,

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:%
A priori ca n'existe pas de base car l'idée est que cela équivaut à refaire
ce que l'on vient de faire. Eventuellement trapper par exemple les touches
ou vérifier que la requête HTTP est la même que la dernière ?

Le mieux est sans doute d'expliquer ce que tu cherches à faire (différence
entre le 1er affichage et le refresh ?) des fois que qq ait une meilleure
idée pour traiter le problème que cela pose...


Eh bien c'est simple. J'ai un Timer sur mon client (en Ajax) que je souhaite
arrêter au bout de T secondes. Ce que je fais avec un time-out. Donc après T
secondes, la page affiche "site inactif". Maintenant si l'utilisateur fait
un "Refresh", le site est réactivé, et il faut que le time-out soit remis à
zéro. Mais il ne faut pas que le time-out soit remis à zéro dans d'autres
cas.

Oriane
Avatar
Patrice
Donc éventuellement vérifier que la requête HTTP est la même que la
dernière.

Je parlais plus de l'objectif général que tu poursuis plutôt que de la
description technique du problème que tu cherches à résoudre dont je ne
saisis pas forcément le pourquoi du comment (il sert à quoi ce timer ?)...

Serait-il possible de le garder *explicitement* (j'ai l'impression
qu'actuellement ton mécanisme le garde par défaut et que tu dois le remettre
explicitement à 0 au refresh ???)


Bon courage.

--
Patrice

"Oriane" a écrit dans le message de news:

Bonjour Patrice,

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:%
A priori ca n'existe pas de base car l'idée est que cela équivaut à
refaire ce que l'on vient de faire. Eventuellement trapper par exemple les
touches ou vérifier que la requête HTTP est la même que la dernière ?

Le mieux est sans doute d'expliquer ce que tu cherches à faire
(différence entre le 1er affichage et le refresh ?) des fois que qq ait
une meilleure idée pour traiter le problème que cela pose...


Eh bien c'est simple. J'ai un Timer sur mon client (en Ajax) que je
souhaite arrêter au bout de T secondes. Ce que je fais avec un time-out.
Donc après T secondes, la page affiche "site inactif". Maintenant si
l'utilisateur fait un "Refresh", le site est réactivé, et il faut que le
time-out soit remis à zéro. Mais il ne faut pas que le time-out soit remis
à zéro dans d'autres cas.

Oriane


Avatar
Oriane
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
Donc éventuellement vérifier que la requête HTTP est la même que la
dernière.

Je parlais plus de l'objectif général que tu poursuis plutôt que de la
description technique du problème que tu cherches à résoudre dont je ne
saisis pas forcément le pourquoi du comment (il sert à quoi ce timer ?)...


Je fais un site qui donne la température d'un site. Un timer interroge
régulièrement un Web service qui donne cette température. Par conséquent si
l'utilisateur ne ferme pas la page Web le site tourne indéfiniment et le Web
service est sollicité aussi indéfiniment.

Pour éviter cela, j'ai mis manuellement un time-out dans le site: au bout de
T secondes, l'interrogation du WS s'arrête. cependant je veux qu'elle
reprenne si on fait un "refresh" sur la page.

Comme cela n'a pas l'air simple, j'ai créé un bouton ad hoc pour relancer
l'interrogation. Ca marche !!

A+ et merci
Avatar
Fred
Dans : news:%,
Fred disait :
Dans : news:%,
Patrice disait :

A priori ca n'existe pas de base





Mal lu la question au départ. J'avais compris qu'il fallait faire la
différence entre le premier GET et un suivant provoqué par un refresh.
Il s'agit de repérer si la page a été postée (POST) .
Il n'y a qu'à regarder la commande utilisée (POST ou GET)
Je crois même qu'il y a une propriété IsPostBack pour simplifier la
chose.

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Avatar
Patrice
Pas évident car le refresh répète la dernière requête et pourrait donc être
un POST à mon avis (je ne sias pas trop ce qu'elle voudrait dans ce cas).

De toute façon, elle a résolu le pb en ajoutant un bouton permettant de
"réactiver" la page (ça me parait bien).

--
Patrice

"Fred" a écrit dans le message de news:
%231%
Dans : news:%,
Fred disait :
Dans : news:%,
Patrice disait :

A priori ca n'existe pas de base





Mal lu la question au départ. J'avais compris qu'il fallait faire la
différence entre le premier GET et un suivant provoqué par un refresh.
Il s'agit de repérer si la page a été postée (POST) .
Il n'y a qu'à regarder la commande utilisée (POST ou GET)
Je crois même qu'il y a une propriété IsPostBack pour simplifier la chose.

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)


Avatar
Laurent Bugnion, MVP
Salut,

Oriane wrote:
Bonjour,

quel événement est déclenché lorsqu'on rafraichit (avec F5 sous IE, cad
en redemandant la même URL) une page aspx ? Je voudrais effectuer une
action particulière dans mon code. Je pensais à l'evt OnLoad mais
apparemment c'est un evt déclenché à chaque fois que la page en
regénérée. Moi je veux effectuer une action uniquement en cas de refresh
mais pas lorsque l'utilisateur clique sur un bouton POSTBACK...

Oriane



Impossible sans sauver l'état sur le server, ce qui pose toute sorte de
problèmes, mais qui peut aider dans ton cas. Utilise l'objet Session
pour sauver des informations indiquant si l'utilisateur a déjà navigué
sur ta page au cours de cette session. Alternativement tu peux aussi
sauver un cookie sur le client, et le lire sur le server.

Amitiés,
Laurent
--
Laurent Bugnion [MVP ASP.NET]
Software engineering, Blog: http://www.galasoft.ch
PhotoAlbum: http://www.galasoft.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch
Avatar
Laurent Bugnion, MVP
Salut,

Oriane wrote:

Je fais un site qui donne la température d'un site. Un timer interroge
régulièrement un Web service qui donne cette température. Par conséquent
si l'utilisateur ne ferme pas la page Web le site tourne indéfiniment et
le Web service est sollicité aussi indéfiniment.

Pour éviter cela, j'ai mis manuellement un time-out dans le site: au
bout de T secondes, l'interrogation du WS s'arrête. cependant je veux
qu'elle reprenne si on fait un "refresh" sur la page.

Comme cela n'a pas l'air simple, j'ai créé un bouton ad hoc pour
relancer l'interrogation. Ca marche !!

A+ et merci



Par curiosité, pourquoi ne veux-tu pas interroger le webservice
"indéfiniment"? Tu pourrais très bien demander la température toutes les
minutes, par exemple, vu que la température ne change pas vite. Nous
avons des applications web qui communiquent avec des webservices toutes
les 5 secondes, et on les laisse tourner pendant 3 semaines sans problèmes.

Amitiés,
Laurent
--
Laurent Bugnion [MVP ASP.NET]
Software engineering, Blog: http://www.galasoft.ch
PhotoAlbum: http://www.galasoft.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch
Avatar
Oriane
"Laurent Bugnion, MVP" a écrit dans le message de
news:%
Salut,

Par curiosité, pourquoi ne veux-tu pas interroger le webservice
"indéfiniment"? Tu pourrais très bien demander la température toutes les
minutes, par exemple, vu que la température ne change pas vite. Nous avons
des applications web qui communiquent avec des webservices toutes les 5
secondes, et on les laisse tourner pendant 3 semaines sans problèmes.



Parce que il y a plusieurs centaines de clients potentiels simultanés, qui
peuvent quitter leur poste sans l'éteindre. Donc c'est une simple question
de ressources.

Cordialement
1 2