FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WEBDEV 2024
→
[WB23]Code lorsque l'on quitte une page
[WB23]Code lorsque l'on quitte une page
Débuté par Pillitteri Jérémy, 30 mar. 2020 14:35 - 2 réponses
Connectez-vous…
Pillitteri Jérémy
#1
Posté le 30 mars 2020 - 14:35
Bonjour,
j'ai développé une gestion de tickets pour du SAV avec, sur une page, une table qui liste l'ensemble des tickets en attente de traitement et sur une autre les informations du ticket sélectionné.
Je souhaiterais que lorsqu'un utilisateur ouvre la page d'un ticket, les autres utilisateurs aient une indication dans la liste que le ticket est consulté par quelqu'un (pour éviter que 2 utilisateurs traitent le même ticket).
J'ai dans ma base de données un fichier TICKET avec une rubrique EnConsultation (booléen) que je passe à vrai lors de l'initialisation de la page du ticket (une personne rentre dans le ticket)
Sur la page du ticket, j'ai mis un bouton pour revenir à la liste qui passe le booléen à faux (plus personne n'est sur le ticket).
Le problème survient si la page n'est pas quittée par le bouton mais soit en fermant l'onglet ou le navigateur soit en affichant une autre page web. Je souhaiterais pouvoir faire passer mon booléen à faux dans ce cas là aussi.
J'ai vu qu'il y avait les sections Déchargement en code navigateur et Fermeture en code serveur mais quand je les teste, rien ne se passe. J'ai testé un info et l'exécutetraitement sur un clic de bouton qui fait un info également mais rien.
Comment je peux faire?
je vous remercie
Signaler
0
0
François C.
#2
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 31 mars 2020 - 10:23
Hello
Oui c'est un sujet qui revient souvent et a ma connaissance il n'y a pas de solution "directe" pour spécifier au serveur que le navigateur est fermé.
Par contre tu peux utiliser un timer navigateur sur la page des tickets :
Ce timer va envoyer a l'ouverture de la page ET toutes les minutes une requête Ajax asynchrone par exemple au serveur.
Cette requête Ajax aura pour but de mettre a jour une rubrique DateHeure dans ta table des tickets "DerniereConsultation"
Ainsi quand quelqu'un ouvre un ticket :
Mise a jour de DerniereConsultation avec DateHeureSys()
Toutes les minutes mises à jour de DerniereConsultation
Si quelqu'un d'autre se connecte sur ce ticket, lors de l'ouverture il suffit alors de vérifier la valeur de DerniereConsultation, si DateHeureSys - DerniereConsultation < 1minute alors il y a déja quelqu'un dessus.
Si l'utilisateur quitte la page par fermeture de navigateur, le timer ne va plus s'executer et le champ ne sera plus mis a jour.
Lors de la prochaine consultation, avant de mettre a jour DerniereConsultation, DateHeureSys - DerniereConsultation sera > 1minute, le ticket est donc libre de toute modifications.
Du coup, avec cette méthode, la seule "contrainte" si l'utilisateur quitte au bout de 15 secondes, il faudra attendre 45 secondes pour libérer le ticket.
Et lors d'une fermure via le bouton "Retour a la liste des tickets" il suffit de faire DerniereConsultation = "" avant de partir.
Signaler
0
0
Tony
#3
Membre enregistré
283 messages
Popularité : +3 (3 votes)
Posté le 03 avril 2020 - 13:26
Bonjour,
Peut-être une autre idée utilisée par ces @#!*$&§ de pages de pub :
Créer un événement "mouse-out" sur la totalité de la page. Lorsque la souris sort de la page, exécuter une fonction.
Les pages de pub ouvrent un "info()" qui bloquent la possibilité de fermer l'onglet mais il devrait être possible de démarrer une conversation navigateur/serveur et donc de déterminer quelle action a été faite par le client.
Ce n'est qu'un début d'idée, hein !
Bon dev et A+
Signaler
0
0
→ Revenir à WEBDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte