определить, активен ли пользователь или находится в режиме ожидания - PullRequest
0 голосов
/ 18 октября 2018

Я создаю расширение для браузера и хочу определить, активен ли пользователь.Поэтому я проверяю, перемещал ли пользователь мышь в течение последних 2 минут.

Однако для лучших результатов я хотел бы отслеживать несколько событий одновременно.Перемещал ли пользователь мышь, совершал событие по нажатию или прокручивал в течение последних двух минут.

Вот мой код для определения движения мыши:

document.onmousemove = function() {
  clearTimeout(timeout);
  timeout = setTimeout(function() {
    // user is idle
  }, 120000);
};

как мне развить кодотслеживать сразу несколько событий?

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Вы можете попробовать использовать библиотеку потоков js:

<script src="https://unpkg.com/threads@VERSION/dist/threads.browser.min.js"></script>

И попробовать что-то вроде этого:

thread
  .send({ string : 'mousemovement' })
  // The handlers come here: (none of them is mandatory)
  .on('mousemovement', function(response) {
    clearTimeout(timeout);
     timeout = setTimeout(function() {
        // user is idle
     }, 120000);
    thread.kill();
    })
  .on('scroll', function(response) {
    //Do something
    thread.kill();
  });

Этот код является лишь примером, пожалуйста, прочитайте больше здесь, если вы хотитепопробуйте этот метод: https://www.npmjs.com/package/threads

Это просто вариант для обработки нескольких задач одновременно

0 голосов
/ 18 октября 2018

Будет ли это работать?

var timeout;
function idle(){
  //idle things
}
document.onmousemove = function() {
  clearTimeout(timeout);
  timeout = setTimeout(idle(), 120000);
};
document.onscroll = function() {
  clearTimeout(timeout);
  timeout = setTimeout(idle(), 120000);
};
//continue with other events
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...