Partage
  • Partager sur Facebook
  • Partager sur Twitter

Temps de présence d'un internaute sur une page

    6 septembre 2018 à 11:33:21

    Bonjour,

    Je cherche un moyen de connaitre le temps que reste une personne sur une page de mon site (avec une page affichée sur l'écran), j'avais pu voir le websocket, ce qui me permettrait également de faire un tchat, d'actualiser le nombre de mp, et d'avoir cette information du temps sur la page facilement. Cependant, il s'avère complexe de mettre en place cela, les tutoriels étant quasi inexistant ou ne se basant pas sur du php et/ou intégrant d'autres technologies comme l'ajax en plus d'être des frameworks (utilisation que je préfère éviter). Je peux par ailleurs, au détriment de la logique à mon sens, combler cela par l'ajax avec des requêtes régulières pour les mp et le tchat.

    Je me demande donc comment je peux connaitre le temps que reste une personne sur une page sans le websocket...

    Merci par avance pour vos idées/astuces !

    • Partager sur Facebook
    • Partager sur Twitter
      6 septembre 2018 à 12:26:11

      Donc...si j'ai bien compris, tu veux que ton serveur sache combien de temps un utilisateur visualise une page, mais sans interaction avec le serveur ? :lol:

      -
      Edité par Genroa 6 septembre 2018 à 12:26:23

      • Partager sur Facebook
      • Partager sur Twitter
      /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
        6 septembre 2018 à 12:35:33

        Ahah c'est là le truc illogique ... après si t'as un truc pour le websocket php comment le mettre en place, je suis preneur ^^

        J'avais pensé à une action javascript juste avant la fermeture de l'onglet ou du navigateur par l'utilisateur... je ne sais pas si c'est faisable. Par ailleurs, par exemple, google analytics peut calculer le temps... il y a donc bien un moyen mais je ne vois pas comment

        • Partager sur Facebook
        • Partager sur Twitter
          6 septembre 2018 à 13:22:44

          websockets pour ça c'est totalement overkill, tu vas conserver une connexion ouverte pour chaque client qui utilise le site. Une petite requête HTTP de temps en temps (via Ajax par exemple) suffirait. Pour le reste, le script peut stocker ses informations dans le local storage pour s'y retrouver entre deux chargements de page.

          Mais si malgré le fait que ça soit probablement une mauvaise idée niveau perfs, faire du Websockets en PHP est faisable il parait, il doit y avoir des frameworks ou lib pour.

          -
          Edité par Genroa 6 septembre 2018 à 13:31:01

          • Partager sur Facebook
          • Partager sur Twitter
          /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
            6 septembre 2018 à 13:48:19

            Oui il y a des frameworks, mais je fais un site pas mal évolué et je préfère apprendre les différentes possibilités en les faisant. Je sais que niveau performance c'est pas forcément le mieux mais on apprends au fur et à mesure et en faisant des erreurs ;)

            websocket oui, la connexion est ouverte, donc pour l'actualisation du nombre de mp et le tchat c'était parfait. pour la durée, j'aurai pu transmettre une fin de connexion donc c'était faisable également.

            J'ai pensé à l'ajax effectivement mais comment envoyer le temps passé sur la page? Par ailleurs je me suis uniquement intéressé aux cookies mais je vais voir un peu le local storage, cela m'a l'air sympa pour d'autres trucs. Mais si tu m'en parles pour obtenir le temps passé sur la page... je ne vois pas par quel biais

            • Partager sur Facebook
            • Partager sur Twitter
              6 septembre 2018 à 17:18:20

              Ben c'est-à-dire que plus que juste la performance, c'est surtout que tu vas vachement moins galérer, et que certaines choses sont tout simplement impossibles à ton niveau sans.

              Websocket, ne l'utilise pour mesure ça que s'ils servent déjà à autre chose.

              Pour AJAX tu aurais juste à compter de zéro à partir du moment où la page est chargée, et envoyer une requête lorsque l'événement onbeforeunload de la page est déclenché, je suppose.

              -
              Edité par Genroa 6 septembre 2018 à 17:18:41

              • Partager sur Facebook
              • Partager sur Twitter
              /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
                6 septembre 2018 à 18:15:17

                Galérer c'est pas un "souci", mais le websocket je trouve absolument rien de concluant, en local j'arrive à envoyer un message mais pas à rendre la chose bidirectionnelle. Après c'est une méthode assez récente donc bon... L'ajax me parait pas mal en effet en attendant davantage de tuto.

                Merci ! C'était ce que je cherchais, partiellement du moins. Pour ne pas avoir la boite de dialogue, il me suffit de faire une fonction sans return ou de valeur null donc c'est ok. Cependant si l'onglet est fermé lorsqu'on n'est pas sur l'onglet fermé, l'évènement devient alors inefficace, y aurait-il un évènement qui intègre cela également ou à ajouter en plus du premier?

                • Partager sur Facebook
                • Partager sur Twitter
                  6 septembre 2018 à 18:25:05

                  Websockets n'est pas spécialement récent non, et c'est justement bidirectionnel. En revanche, en PHP... Aucune idée. (et je m'en fiche pas mal vu la tronche du langage)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
                    6 septembre 2018 à 18:43:44

                    Tu privilégierai plutot nodejs donc pour faire un site ?

                    J'avoue que les gains de performance sont très tentants, ainsi que le coté javascript partout... un langage unique à gérer est toujours plus simple.

                    Cependant le coté asynchrone est un peu "stressant"... J'utilise une base de données, je récupère des données et en fonction du résultat d'autres récupérations et traitements sont effectués, ces derniers dépendants à chaque fois des premiers... Je trouve donc que c'est assez synchrone comme schéma. J'ai l'impression que NodeJS va essayer de tout me faire en même temps et potentiellement avec des données qui n'ont pas eu le temps d'être modifiées dans une phase précédente.

                    --

                    Par ailleurs si t'as un évènement sympa en plus de onbeforeunload lors des fermetures de page hors page active, je suis preneur ^^

                    • Partager sur Facebook
                    • Partager sur Twitter
                      6 septembre 2018 à 18:57:18

                      Bonsoir, 

                      La tronche du langage PHP à permise à de nombreuses personnes hésitantes de mettre un pieds dans la création de sites avec traitement côté serveur, avec ses avantages (courbe d'apprentissage, communauté, facilité d'hébergement à moindre coût) et ses défauts.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Stéphanie, blonde mais je me débrouille (....?) ** Mon sondage: mode Dark VS mode Clean
                        6 septembre 2018 à 19:02:10

                        Evitons de relancer le débat sur PHP, ce forum n'est pas dédié. Disons qu'il a son lot de défauts qui peuvent donner envie de s'en débarrasser complètement.

                        Pour ton problème, onbeforeunload devrait suffire, non?

                        Et non, si tu as déjà un site complet, ne casse pas tout pour passer sur NodeJS, surtout si tes compétences en JS sont encore très limitées. C'est pas hyper intuitif.

                        • Partager sur Facebook
                        • Partager sur Twitter
                        /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
                          6 septembre 2018 à 19:08:21

                          Ce petit débat est quand même sympa ! Et j'ai les fondations du site, donc recommencer si cela vaut le coup n'est pas un souci. Des sujets où des avis constructifs ont été donnés ? Avantages, inconvénients de chaque etc. Je compte rajouter énormément de choses à terme donc je préfère recommencer plusieurs fois si les avantages sont supérieurs aux inconvénients :). L'énorme avantage de NodeJS est le coté bidirectionnel possible facilement, la rapidité. Après j'ai encore du mal à percevoir les cotés négatifs. Je me pose des questions aussi sur le coté objet du langage... comment créer un objet avec ses éléments à l'intérieur? faire ses get/set/methodes... Et apache dans tout cela? car j'ai l'impression que NodeJS remplace PHP et Apache au final ^^

                          Pour onbeforeunload, non, comme évoqué plus haut lorsque sur le navigateur on est sur un site 2 (page active) et on ferme le site 1 (page inactive), la page inactive avec l'évènement est fermé sans que l'évènement se produise... y aurait-il un autre évènement incluant cette prise en compte... ou le rajoutant en plus de onbeforeunload ?

                          -
                          Edité par florian26 6 septembre 2018 à 20:46:28

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Temps de présence d'un internaute sur une page

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown