Как разобраться с кейсом: долгое ожидание загрузки через браузер (Laravel + React / InertiaJS), из-за чего?

Ссылка скопирована
1 ответ

Всем доброго вечера.
По вводным: имеем набор: Laravel + React
Сейчас ситуация такая: столкнулся с странной проблемой.
По вводным: раскатил приложение, пробую открыть его через веб - получаю долгое ожидание (~ спустя 30 Кб полученных данных), фактически погружен только title + css.
По вводным: через Wireshark вижу, что ПК каждые 45 секунд пробует повторно получить данные.
Сейчас ситуация такая: изначально подумал, что проблема может быть в мидлварах/эксепшенах, что я накидал, попроверял быстро раскатить дефолтный react-starter-kit, ситуация аналогичная (хостер аеза, которая ООО/ру, не LTD/net).
По вводным: при этом если я комментирую autoload/bootstrap и т.д., выводя какую-то статику (условно hello world с выводом даты) - страница загружается.
Сейчас ситуация такая: на другом хостере аналогичных проблем не обнаружил.
Нужно понять: кто-то сталкивался с подобными ограничениями/проблемами?
По вводным: интересует "как решать/куда смотреть".
Сейчас ситуация такая: p.S. Переезд - это конечно решение, но нет гарантий, что в ближайшем будущем и на другом хостере не будет таких проблем.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Редакция по БД Ответ

Долгое ожидание загрузки в связке Laravel + React/InertiaJS может быть на backend, frontend или между ними. Inertia не делает приложение автоматически быстрым: первый ответ всё равно генерирует Laravel, затем грузятся JS-бандлы, данные props и assets. Нужно измерить, где именно задержка.

Начните с Network в браузере: посмотрите TTFB основного HTML/JSON-запроса, размер JS/CSS, waterfall и время до первого рендера. Если TTFB высокий — проблема в Laravel, БД, middleware, сессиях, запросах или внешних API. Если TTFB нормальный, но долго грузится JS — смотрите Vite build, code splitting и размер бандла.

Для Laravel проверьте:

php artisan optimize
php artisan route:cache
php artisan config:cache
php artisan view:cache

php artisan optimize php artisan route:cache php artisan config:cache php artisan view:cache

Но не используйте cache-команды вслепую на разработке. На проде они полезны, если конфиг стабилен.

Типовые причины медленного Inertia:

  • в props передаются слишком большие массивы;
  • нет pagination, грузятся тысячи записей;
  • N+1 запросы Eloquent;
  • middleware делает внешние запросы;
  • тяжёлый JS bundle;
  • dev-сборка вместо production build;
  • нет gzip/brotli и кэша статики.

Поставьте Laravel Debugbar/Telescope локально и посмотрите количество SQL-запросов. Для React-бандла выполните production build и проверьте размер chunks.

Итог: сначала разделите TTFB и frontend загрузку. Если медленный сервер — профилируйте Laravel и SQL. Если медленный клиент — уменьшайте props, делайте lazy loading и code splitting. В Inertia особенно важно не передавать на каждую страницу лишние глобальные props.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно