Mestniydevil
@Mestniydevil

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

Как выполнить функцию один раз?
Когда пользователь не перемещает мышь. В сокет отправляется строка и у пользователя появляется соответствующий значок. Если пошевелил, то отправляется что пользователь он-лаин!!! Делаю так но получается циклично отправляется!!! Подскажите как правильно сделать?

let times = 5000;
let timer = null;
function resetTimer() {
    clearTimeout(timer);
    time = setTimeout(exit, times);
    let nslee = {
        nsleep: window.t,
        usid:window.id,

    };
    websocket.send(JSON.stringify(nslee));

}

function exit() {
    let slee = {
        sleep: window.t,
        usid:window.id,

    };
    websocket.send(JSON.stringify(slee));
}

document.addEventListener('mousemove', resetTimer);
  • Вопрос задан
  • 58 просмотров
Решения вопроса 2
JRK_DV
@JRK_DV
Рецепты https://codepen.io/jrkdv/full/LKLXdq
например, так
https://codepen.io/anon/pen/JzmxzX
Ответ написан
Комментировать
dollar
@dollar
Делай добро и бросай его в воду.
Автор, дарю костыль на все функции, которые нужно выполнять всего один раз:
let foo_done = false;
function foo() {
	if (foo_done) return;
	foo_done = true;
	//ваш код функции...
}

Ну а по-хорошему нужно сделать красиво. Вы добавляете функцию через addEventListener, значит в самой функции нужно вызывать removeEventListener, чтобы функция отвязывала саму себя от события. Таким образом, функция выполнится один раз и больше не будет выполняться.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы