После некоторого расследования я обновил заголовок вопроса. См. Мои обновления ниже.
Оригинальный вопрос:
Я создаю сайт с Wordpress и иногда использую асинхронные вызовы для конечных точек API WP REST.
Вызов этих конечных точек из моих функций AJAX часто приводит к времени TTFB не менее ~ 780 мс:
Но если я открою URL/конечную точку непосредственно в браузере, я получаю TTFB раз, что на 4-5 раз быстрее:
Интересно, откуда происходят задержки. Я запускаю эту страницу на своем локальном dev-сервере с включенными Apache 2.4, HTTP/2 и PHP 7.
Каков наилучший способ отслеживания таких проблем?
Обратите внимание: Я не, используя встроенную AJAX-функцию Wordpress. Я просто называю что-то вроде
axios.get(`${url}/wp-json/wp/v2/flightplan`)
внутри компонента React, который я установил на моем домашнем шаблоне.
Update
Черт, интересно: очистка файлов cookie уменьшает TTFB много:
Обновление 2
После удаления других вызовов AJAX запрос flightplan
выполняется намного быстрее. Я думаю, что есть некоторые проблемы с параллельными запросами AJAX. Я немного читал о блокировке сеансов, но поскольку Wordpress и все установленные плагины не используют сеансы, это не может быть причиной.
Обновление 3
Определенно, это как-то связано с настройкой моего локального сервера. Просто развернул сайт на "реальном" веб-сервере:
Но было бы интересно узнать, как настроить сервер, который может справиться с одновременным улучшением.
Обновление 4
Я сделал небольшой тест: вызывая 4 фиктивных запроса перед вызовом "реальных". script возвращает строку "Foobar". В это время все выглядит нормально:
Но при добавлении sleep(3)
в манекен AJAX- script все остальные запросы занимают гораздо больше времени:
Почему?