IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Utiliser onUnload juste pour detecter fermeture navigateur


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut Utiliser onUnload juste pour detecter fermeture navigateur
    Bonjour!

    Titre explicite.
    Je veux utiliser onUnload ou un autre système éventuellement permettant de détecter uniquement la fermeture du navigateur (ou de l'onglet éventuel...).

    J'execute un traitement rapide sur l'évenement onUnload (ajax) qui tue les sessions et mets à jour les heures de déconnexion. Seulement cet événement onUnload s'éxécute aussi sur les rafraichissements de page et redirections.

    Vous connaissez un moyen de détecter UNIQUEMENT la fermeture du navigateur?

    Merci

  2. #2
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut
    résolu!

    J'avais la solution sous les yeux...

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    et ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut
    et ben je ne passe pas par un onUnload lol.

    J'utilise déjà un chrono ajax qui met à jour l'heure de "présence" du client (toutes les secondes).
    Donc pour savoir qd le client n'est plus sur le site (que ça soit une fermeture de son navigateur ou un crash de son pc) il suffit que je nettoie toutes les connexion inférieures (par ex) à 20 secondes par rapport à l'heure actuelle.
    Pour ça ok...

    Le soucis que j'avais était pour détecter l'heure de déconnexion du dernier client présent sur le site. En effet si ce dernier se déconnecte et que je n'utilise pas de onUnload...je ne voyais pas comment savoir à quelle heure il s'est déconnecté. Or chuis con...lol...son heure de déconnexion est tout simplement la dernière heure que son chrono à mis à jour dans la base...

    Me reste qu'à faire une ou deux petites mises à jour de la base dans le crontab du serveur web et voilà j'ai un suivi à la seconde près de chaque utilisateurs du site. youpla ridon ridaine.

    tchao

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    tu peux nous en dire un peu plus sur ce chrono ajax ?

    cela parrait intéressant comme astuce
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut
    No pb

    Disons que sur ma page principale (commune à l'ensemble du site) j'ai un chargeur de scripts (qui utilise window.onload) dans lequel je passe un script (JS) qui tourne en boucle toutes les 1 secondes et qui (par ajax) éxécute qlq requêtes de maintenance sur la base de données.

    En l'ocurrence, pour chaque utilisateur connecté (loggués) sur le site, le script qui tourne va mettre à jour la base de données, notamment l'heure POUR CHAQUE USER. Dans ce mm script (php) j'ai une boucle qui contrôle toutes les heures mises à jour de chaque utilisateur. J'ai spécifié que si une heure (d'un client) était inférieure de plus de 20 secondes à l'heure actuelle alors ce dernier n'est plus considéré comme connecté sur le site et je peux éventuellement killer son ID de connexion et le rediriger vers la page de login (mais ça ne me concerne pas).

    Quand un user ferme son navigateur alors la dernière heure que son script à mis a jour dans la base correspond à son heure de déconnexion.
    Donc quand le script va contrôler les heures, il verra qu'une heure n'a pas été mise à jour à temps (20sec) et mettera à jour qlq données spécifiant l'heure de déconnexion du client et 2 ou 3 autres infos.

    Rien de compliqué mais très pratique.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/08/2008, 15h45
  2. aide pour detection du navigateur
    Par oborer dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/08/2006, 16h44
  3. Réponses: 36
    Dernier message: 13/05/2004, 18h22
  4. [xsl] xsl juste pour faire copie d'un xml
    Par peppena dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 17/02/2004, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo