Pertanyaan Bagaimana saya mendeteksi jika pengguna "diam" dengan javascript?


Saya sedang mengembangkan aplikasi web "real-time" yang mengirim permintaan AJAX ke server setiap 10 detik. Jelas ini sangat bandwidth-intensif dan saya ingin tahu apakah ada solusi untuk ini.

Ide saya memeriksa apakah pengguna tidak menggerakkan mouse-nya selama X detik. Bagaimana saya bisa mencapai ini?


8
2017-11-04 23:01


asal


Jawaban:


Saya pikir Anda sedang mencari ini: https://github.com/jasonmcleod/jquery.idle


5
2017-11-04 23:05



Anda mungkin ingin mendengarkan beberapa atau semua acara berikut:

mouseMove, mouseClick, mouseUp, mouseDown, keyDown, keyUp, keyPress

mengatur timer untuk pergi setelah beberapa durasi kemalasan (60 detik?) dan yang akan mematikan sakelar Anda pastikan Anda memeriksa sakelar sebelum permintaan ajax Anda.

Idealnya, Anda akan secara eksponensial mengalihkan panggilan ajax Anda ke beberapa nilai rendah, semakin lama pengguna tetap menganggur.

$(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);
}

14
2017-11-04 23:17



http://docs.jquery.com/Tutorials:Mouse_Position Semoga itu membantu!


1
2017-11-04 23:03



Inilah cara lain: http://www.tek-tips.com/faqs.cfm?fid=2700
Dan menggunakan Jquery: http://www.bedroomlan.org/coding/detecting-%E2%80%98idle%E2%80%99-and-%E2%80%98away%E2%80%99-timeouts-javascript


1
2018-01-07 19:47