Вызовы Ajax превышают лимит одновременных сеансов сервера? - PullRequest
0 голосов
/ 17 января 2019

Я нахожу только серверы с лимитом 20 одновременных сессий (максимум 20 запросов одновременно).

Мое приложение состоит из PHP и JS (jQuery). В какой-то момент он делает слишком много Ajax-вызовов на сервер для извлечения данных из MySQL (16-18 одновременно, и каждый занимает около 3-4 секунд), что приводит к сообщению сервера о достижении лимита ресурсов.

Как я могу решить эту проблему, не слишком меняя свое приложение?

В сети devtool заголовок ответа для поддержки активности: Keep-Alive timeout=5, max=99.

Если бы я изменил это значение на меньшее, это помогло бы? Или это означает, что если он не может быть обработан за 99 секунд, он закроет этот запрос?

Решением может быть написание функции для всех моих вызовов Ajax, которая будет всегда ждать секунду, собирая вызовы, и выполнять только один запрос, затем она будет выполнять обратный вызов для всех моих функций, делая вызов, но это боль делать.

Есть ли лучшее и простое решение для этого?

Разве нет возможности для вызовов Ajax ограничить мои одновременные вызовы, скажем, 5, а все остальные будут ждать, пока он не завершится? Или я должен сделать это с помощью setTimeout вручную?

1 Ответ

0 голосов
/ 17 января 2019

Вы можете использовать методы throttle / debounce . Есть также jQuery-плагинов , которые предоставляют аналогичные функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...