PROFESSIONAL NEWSGROUPS
WINDEV
,
WEBDEV
and
WINDEV Mobile
Home
|
Recent messages
|
Connect
|
Sign out
|
English
Home
→
WEBDEV 2024
→
[WB23]Code lorsque l'on quitte une page
[WB23]Code lorsque l'on quitte une page
Started by Pillitteri Jérémy, Mar., 30 2020 2:35 PM - 2 replies
Connect yourself…
Pillitteri Jérémy
#1
Posted on March, 30 2020 - 2:35 PM
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
Report
0
0
François C.
#2
Registered member
1,623 messages
Popularité : +100 (114 votes)
Posted on March, 31 2020 - 10:23 AM
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.
Report
0
0
Tony
#3
Registered member
283 messages
Popularité : +3 (3 votes)
Posted on April, 03 2020 - 1:26 PM
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+
Report
0
0
→ Go back to WEBDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WEBDEV (earlier versions)
WINDEV Mobile (earlier versions)
Reports & Queries
Off-topic
Tools
Français
English
Español
Portuguesa
Close this window
Search type
Only topics
All the messages
Search period
Any time
Past hour
Past 24 hours
Past week
Past month
Past year
Cancel
Preview of your message
Adding an image
Import an image from a URL
Send an image from a file of your disk
Drop a file or click "Browse..."
or
Cancel
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Text