У меня проблема, когда при загрузке страницы (после определенного количества файлов .js или .css) файлы загружаются слишком долго. Сначала я подумал, что проблема должна быть внутри файлов .js, но позже я понял, что содержимое не имеет значения, я попытался удалить содержимое файлов .js, которые загружались слишком долго, но проблема все еще существовала. Я также понял, что если я изменю порядок, в котором загружаются файлы, то те файлы, которые я оставляю последними, всегда будут загружаться очень долго (это время загрузки отличается от ПК к ПК, на у меня 5-6 секунд, у другого 19-20). В настоящее время я использую Apache 2.4 для разработки и подозреваю, что проблема должна быть где-то в настройках.
Вы можете увидеть проблему здесь:
Любая помощь будет оценена.
Ситуация довольно странная. Я предлагаю профилировать клиентскую часть вашего приложения и попытаться понять, что происходит.
Обычно проблема может зависеть от:
Локально кэшированный контент, который очень медленно читается, это не должно зависеть от конкретного повреждения файла, поскольку медленные файлы зависят от последовательности, которую вы указали в ссылках на JS.
Проблема рендеринга на клиенте (хотя это не должно измениться в последовательности элементов, на которые есть ссылки)
Возможная проблема параллельных передач на вашем сервере apache. Это может означать, что у вас есть масса файлов, которые нужно взять с помощью различных операций GET, и Apache не может обслуживать их все параллельно. Следовательно, сериализация может произойти с наблюдаемыми вами эффектами.
Различные способы получения одних и тех же файлов, возможно, открытие другого рабочего на apache (т.е. главная страница через прямой IP-адрес на Apache, JS через прокси, указывающий на тот же Apache. И Apache настраивается в сценарии с одним рабочим (мне недостаточно информации для судить)
Проклятый антивирус, действующий локально, который запускает операции загрузки браузеров
Мой совет: сделайте следующее:
В конце профилирования вы заметите, что является причиной сериализации процесса.
У браузеров есть ограничение на количество одновременных подключений к домену. Это означает, что браузеры не будут открывать дополнительные подключения для загрузки дополнительных ресурсов, пока не закончат загрузку предыдущих ресурсов. Это могло быть одной из причин такого поведения.
Поэтому рекомендуется ставить все .js
код в один файл, а также .css
в один файл.
Другая возможность заключается в том, что если это происходит при загрузке всех страниц, заголовки HTTP-кеша могут быть установлены таким образом, чтобы кеширование не происходило на стороне браузера. Поэтому браузер загружает ресурсы каждый раз, когда подключается к странице, что также замедляет процесс.