Как выполнить функцию в данном случаи?

150
12 декабря 2019, 06:30

Как делать что бы функция отправляла результат единожды? Надо отправлять в сокет статус пользователя. Если пользователь перемещает курсор у него один статус. Если пользователь отошел через некоторое время у него появляется другой статус. Пробую писать функцию. Функция sleep срабатывает как нужно данные отправляются один раз. Вот проблема в другой функции как её так же отправлять единожды? По тому как начинаешь двигать мышкой функция выполняется многократно. А мне нужно отправить в сокет что пользователь на месте только один раз. Как её запускать единожды для отправки в websocket? Вот мой пример кода:

let times = 1000;
let timet = null;
function resetTi() {
    clearTimeout(timet);
    console.log('on site');
    timet = setTimeout(sleep, times);
}
function sleep() {
    console.log('sleep');
}
document.addEventListener('mousemove', resetTi);
Answer 1
let times = 1000;
let timet = null;
function resetTi() {
  if (!timet) {
    // отправить в сокет что пользователь на месте
  }
  clearTimeout(timet);
  console.log('on site');
  timet = setTimeout(sleep, times);
}
function sleep() {
  timet = null;
  console.log('sleep');
}
document.addEventListener('mousemove', resetTi);
Answer 2

всё намного проще

document.addEventListener('mousemove', resetTi, {
  once: true
});

но можно вообще этого не делать, на сервере есть такое понятие как время сессии. если нет взаимодействия клиента с сервером(время сессии заканчивается) - отправлять клиенту команду перехода на страницу авторизации (к примеру)

READ ALSO
Как переопределить функцию render в React?

Как переопределить функцию render в React?

Данный код создаёт React компонент ChartПодскажите как можно было бы переопределить метод render этого компонента при помощи JS?

143
Передача состояниа checkbox с ajax

Передача состояниа checkbox с ajax

Всем доброго дня суток из ajax в пчп обработчик передаю дааные методом: var selectval_1 = $("select_1 option:selected")

100
Как добавить класс блоку в зависимости от комбинации радиокнопок?

Как добавить класс блоку в зависимости от комбинации радиокнопок?

Всем приветЕсть два блока радиокнопок в каждом по 3 кнопки (Первый: 1 человек, 2 человека, Семья

142