qualitat
@qualitat

Каким образом можно ограничить количество исполнения событий в JavaScript?

Добры день, друзья.

Возможно в вопросе не видно сути проблемы, изложу на примере.

Для начала клиента регистрируем в комнате
socket.emit("join", {"room": userRoom});

Дальше подписываемся на событие

socket.on("notify", function (data) {
        
         // в этом месте отправляем ajax запрос на сервер
         // в ходе запроса возможно обращение к БД
         // обрабатываем полученные данные
        });


Так вот, событий notify может прийти большое количество в одну единицу времени, скажем 30 за 3 секунды. Дело в том что нет нужды делать ajax запрос c такой периодичностью.

Вопрос: Как можно отбросить лишние запросы, к примеру, установить лимит 1 запрос в 1 секунду.

Заранее благодарен за любые советы. Спасибо
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
Xuxicheta
@Xuxicheta
инженер
https://habrahabr.ru/post/60957/
https://www.npmjs.com/package/javascript-debounce
да и самому несложно написать, хотя бы так
let perm = true;
const delay = 1000;
socket.on("notify", function (data) {
if (!perm) return;
perm = false;
setTimeout(() => perm = true, delay);
// here do actions
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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