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); }
http://docs.jquery.com/Tutorials:Mouse_Position Espérons que ça vous aide!
Voici une autre façon: http://www.tek-tips.com/faqs.cfm?fid=2700
Et en utilisant Jquery: http://www.bedroomlan.org/coding/detecting-%E2%80%98idle%E2%80%99-and-%E2%80%98away%E2%80%99-timeouts-javascript