Comment détecter si l'utilisateur est "inactif" avec javascript?

Je développe une application Web "en temps réel" qui envoie les requêtes AJAX au serveur toutes les 10 secondes. Évidemment, cela nécessite beaucoup de bande passante et j'aimerais savoir s'il y a une solution.

Mon idée est de vérifier si l'utilisateur ne déplace pas sa souris pour X secondes. Comment puis-je accomplir cela?

Je pense que vous recherchez ceci: https://github.com/jasonmcleod/jquery.idle

Vous voudrez peut-être écouter certains ou tous les événements suivants:

MouseMove, mouseClick, mouseUp, mouseDown, keyDown, keyUp, keyPress

Définissez une minuterie pour fonctionner après une certaine durée d'inactivité (60 secondes?) Et cela éteindra votre interrupteur, assurez-vous de vérifier votre commutateur avant vos requêtes ajax.

Idéalement, vous réduisez de manière exponentielle vos appels ajax à une valeur faible, plus un utilisateur reste inactif.

$(window).bind('mousemove click mouseup mousedown keydown keypress keyup submit change mouseenter scroll resize dblclick', someEvent); var active = true, delay = 60000, timer = null; function someEvent(e) { active = true; if (timer) clearTimeout(timer); timer = setTimeout(function(t){ active = false; }, delay); }