@lissoff-1

Как уберечься от слишком частых ajax запросов?

Для обновления данных я использую setTimeout с аякс-запросом, который исполняется раз в 10 секунд во избежании больших нагрузок. Но хрустик покопался в консоли хрома и обнаружил, что юзер может сам сформировывать и отправлять множественный такой запрос с очень коротким интервалом. Мне кажется выход только один, нужно на стороне сервера как-то проверять частоту входящих запросов.

Додумался до такого пока только:

if ($_SESSION['time'] + 10 > time()) exit(json_encode(array('limit')));
$_SESSION['time'] = time();

Подскажите, нормальное ли это решение илии лучше как-то по другому делать?
  • Вопрос задан
  • 320 просмотров
Пригласить эксперта
Ответы на вопрос 3
glaphire
@glaphire Куратор тега PHP
PHP developer
Можно попробовать готовые библиотеки по ключу "rate limiter"
https://packagist.org/?query=rate%20limiter
Upd. Другой ключ - "throttling/request throttling"
Ответ написан
Комментировать
@Azperin
Дилетант
Server-Sent Events
Ответ написан
Комментировать
@rPman
websocket

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

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

Похожие вопросы