Bonjour,
Avez-vous une idée de code pour détecter quand l'utilisateur va cliquer sur la croix rouge du navigateur. J'aimerais lancer une action avant que la page se ferme ?
Pour info: mon site est développé en aspnet 2.0 + c#
Bonjour,
Avez-vous une idée de code pour détecter quand l'utilisateur va cliquer sur la croix rouge du navigateur. J'aimerais lancer une action avant que la page se ferme ?
Pour info: mon site est développé en aspnet 2.0 + c#
Apparement, c'est pas trop possible
Mon problème c'est que je voudrais effacer une variable de session lorsque l'utilisateur va fermer l'application.
De tte facon, quand il ferme le navigateur, il perd la session,
Sinon, tu peux génerer un bouton de fermeture dans l'application qui te fait un session.abandon() et te ferme la fenetre.
En fait ce n'etait pas vraiment les variable session squi me posait probleme, c'est surtout la variable APPLICATION. Je l'utilise pour détecter quand une page est déjà en cours d'utilisation par un autre utilisateur. Donc quand l'utilisateur quitte la page en question ou dse deconnecte de l'application, je met à jour la variable APPLICATION pour "debloquer la lecture seule" de la page. Mais effectivement j'ai vu que ca ne marchait pas quand l'utilisateur quittait la page par croix rouge.
Du coup, j'ai un peu creusé le problème ce matin et j'ai trouvé unbe solution qui m'a l'air de fonctionner. Voila ce que j'ai fait :
1) J'ai fait une fonction javascript window_onbeforeunload qui execute uniquement : window.navigate('disconnect.aspx')
2) dans le body de ma page GestProjet.aspx en cours de modification (lecture seul pour tous les autres) : j'ajoute onbeforeunload="return window_onbeforeunload()".
3) Je crée une nouvelle page asp Disconnect.aspx(je la laisse vierge) et dans le Page_Load j'ajoute des instructions permettant de mettre à jour ma varible APPLICATION specifiant que la page GestProhet.aspx n'est plus en cours de modification
Du coup, ca marche pas trop mal
Et si le type a une coupure de courant?
Ca fuckbox qui tombe en panne?
Ca femme a nerveusement débranché le fil car il ne soccupe pas d'elle?
Ca maitresse a nerveusement coupé le fil pour qu'il s'occupe d'elle?
Il a décidé d'emm... tous ses collegue, et a lancé un refresh automatique de sa page toutes les 30 secondes, pc allumé jour et nuit, la page est bloquée a vie?^^
Attention!! OnBeforeUnLoad est également appelé quand tu changes de page.
Mais apparemment, c'est pas génant dans ton coté
C'est un problème embettant sur quoi tu mets le doigts.....et si côté base de données, tu gérais des triggers/locks....etc ?
Effectivement le onbeforeunload est appelé quand on change de page mais ca me convient parfaitement aussi.
Et puis si par hasard il ya des coupures intepestives (coupure de courant, etc comme signalé plu shaut), tant pis c le timeout du serveur qui agira.
Car au bout de trois minutes si l'utilisateur ne fait aucune action sur la page, il est deconnecté automatiquement...
3 mintutes? Faut pas aller prendre de café alors...Envoyé par florent-k
J'ai oublié:
"Et si l'utilisateur a désactivé javascript?"
Pour 3 minutes l'intéret de la méthode reste limitée...
C'est une appli pour quel secteur?
Arretez de chercher la petite bete, c une application intranet, les utilisateurs ne sont pas sensés desactivés le javascript, c'est le javascript qui permet de gerer plusieurs fonctionnalités de l'applciation.
Effectivement pour trois minutes ma méthode peut sembler inutile mais si 10 utilisateurs sont connectés en meme temps, je suis obligé de prevoir meme pr trois minutes
En fait, cela me parait étrange de bloquer une page, meme pour un intranet...
Pour moi ce n'est pas la technique d'affichage ou de modification de l'information qui doit etre bloqué, mais l'information elle meme...
Est ce que tu as prévu un systeme de lock pour tes variables? Car si 2 utilisateur y accède en meme temps, le temps de la mettre en lecture seule, un autre peut y entrer...
En fait ce n'est pas vraiment la page qui est bloqué mais la saisie dans la page.
En fait j'ai d'abord une page de recherche je fais une recherche de certaines informations, la recherche est restitué sous la forme d'un datagrid. En cliquant sur le lien Modifier j'accede a ma page GestProjet.aspx. Donc le projet qui est encours de modification ne doit pas l'etre simultanément par deux utilisateurs. Du coup, ce n'est pas la page qui est bloqué mais la saisie dans les champs ainsi que l'enregistrement.
Le framework te permet de gérer ce genre de probleme.
Les GridView par exemple le font presque nativement, t'as juste à configurer 2-3 choses
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager