Почему мой браузер загрузка все не отобразил бы ресурсы сразу?

Я пытаюсь оптимизировать время загрузки веб-страницы. В настоящее время в основном запросе HTTP можно выполнить менее чем секунда, однако, загрузка consenquent изображений, кажется, "располагается каскадом":

http://picpaste.novarata.net/pics/320bd387b4988729ad2dbb10f69a7857.png

Я использую nginx для обслуживания моих статических файлов с 3 рабочими. Существует ли возможность, что соединения сохранены отставанием?

Я предположил бы, что все эти изображения будут загружены одновременно. Файлы подаются по HTTPS с набором проверки активности к 65 секундам.

Править: Firefox действительно, кажется, пытается загрузить их сразу, однако, время соединения постепенно увеличивается больше чем до 2 секунд:

http://picpaste.novarata.net/pics/32c28414501d165df3e04b01e3ac3084.png

0
задан 11 April 2015 в 12:26
3 ответа

Это поведение зависит от вашего браузера. Например, если вы используете Chrome, вы можете обнаружить, что график времени показывает такое же поведение, но на какое-то время все «застопорилось»; вероятно, это связано с ограничением [Chrome] 6 одновременных подключений на источник.

Вы не говорите, какой браузер и версию вы используете.

Вот выдержка из https://developer.chrome.com/ devtools / docs / network # resource-network-Timing

Зависание / блокировка Время ожидания запроса до его отправки. Это время включает все время, потраченное на согласование прокси. Кроме того, это время будет включать, когда браузер ожидает, пока уже установленное соединение станет доступным для повторного использования, подчиняясь максимуму шести TCP-соединений Chrome для каждого правила источника.

1
ответ дан 4 December 2019 в 13:51

Обычно сервер содержимого используется для обслуживания статических содержание. Это может установить соответствующие заголовки кеширования, чтобы браузер мог кэшировать контент. Это сокращает время рендеринга при последующих загрузках страницы. Некоторые сайты устанавливают очень долгий срок действия и используют новые имена файлов для обновленного содержимого.
Хотя это не помогает с начальным временем загрузки, оно должно увеличивать последующее время загрузки. Это также снижает нагрузку на ваш сервер, что также поможет в этом отношении.

Хотя вы можете сделать относительно немного, чтобы надежно увеличить время загрузки, можно улучшить время рендеринга. (Есть веские причины, по которым браузеры ограничивают количество открываемых соединений.) Включение данных о размерах для графических элементов позволяет отрисовывать страницу до того, как графика будет загружена. Также может помочь загрузка компонентов скрипта, которые не требуются для асинхронного рендеринга.

1
ответ дан 4 December 2019 в 13:51

Это может зависеть от настроек KeepAlive. Если установлено - сервер будет пытаться использовать как можно меньше соединений (совместно с браузером). Однако при этом общение становится «синхронным», поэтому появляется сообщение «Я прошу А и не буду просить Б, пока А не будет здесь». Также сервер должен отправлять элементы в том порядке, в котором были получены запросы, а не в том порядке, в котором он смог обработать эти запросы. Это ограничение HTTP / 1.1

. Вы спрашиваете о поведении HTTP / 2, когда операции асинхронны и происходит настоящее мультиплексирование.

0
ответ дан 4 December 2019 в 13:51

Теги

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