Maison > Questions et réponses > le corps du texte
Je travaille sur un système Web qui doit vérifier s'il est en ligne. Pour la situation en ligne, j'ai ajouté un champ en ligne à la table utilisateur. 1 signifie en ligne et 0 signifie hors ligne. le bouton est cliqué pour quitter normalement, le champ en ligne de la table utilisateur sera défini sur 0, effacer la session et quitter le site Web ne pose aucun problème, mais il est impossible de changer le statut en ligne de l'utilisateur en hors ligne après que l'utilisateur ferme directement le site. fenêtre ou navigateur. J'essaie actuellement d'utiliser JS pour surveiller si l'utilisateur ferme la fenêtre ou le navigateur, puis ajoute une méthode de sortie à l'événement de fermeture. Certains codes JS trouvés sur Internet pour surveiller la fermeture du navigateur sont les suivants :
<script type="text/javascript">
window.onbeforeunload = function(e) {
e = e || window.event;
var msg = "您确定要离开此页面吗?";
// IE
e.cancelBubble = true;
e.returnValue = msg;
// Firefox
if(e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
}
// Chrome / Safari
return msg;
};
</script>
Les méthodes telles que onbeforeunload ou onload ne peuvent pas déterminer les actions de fermeture du navigateur/actualisation de la page/saut de page. Je me demande si quelqu'un a de l'expérience dans ce domaine. Veuillez me donner quelques conseils.迷茫2017-06-05 11:11:36
La période de service est notifiée toutes les 1 secondes lorsque le client est en ligne et confirmée sur le serveur. Si le client perd le contact, il est confirmé comme étant hors ligne.
setInterval(function(){
$.ajax({
type: "GET",
url: "server url",
data: {isOnline:1},
dataType: "json",
success: function(data){
//客户端在线
}
});
}, 1000);
PHP中文网2017-06-05 11:11:36
window.onbeforeunload = function () {
window.event.returnValue = '';
};