Одновременные загрузки

#http #firebug #pagespeed #web-optimization

#http #firebug #скорость просмотра страниц #веб-оптимизация

Вопрос:

Я отслеживал сетевую панель Firebug и заметил, что HTML должен быть загружен первым, прежде чем будут загружены какие-либо другие ресурсы. Я думаю, это имеет смысл, поскольку другие ресурсы определены в HTML. Есть ли способ обойти это, чтобы другие компоненты могли быть загружены во время загрузки HTML?

Комментарии:

1. Такое ощущение, что вы ответили на свой собственный вопрос. Браузеру необходимо извлечь всю разметку и начать ее синтаксический анализ, прежде чем он узнает, какие еще ресурсы требуются. Вы имеете в виду вместо этого, как оптимизировать этот процесс, используя что-то вроде Facebook BigPipe [1]? [1] facebook.com/notes/facebook-engineering /…

Ответ №1:

Отладка 101: то, что вы видите во время отладки, отличается от того, что происходит, когда вы не смотрите.

Большинство браузеров запускают интерпретацию HTML во время его загрузки и одновременно загружают дополнительные ресурсы. Firebug — не лучшее место, чтобы увидеть, как это происходит, попробуйте вместо этого HttpFox.

Теперь, чтобы ответить на ваш вопрос: вам не нужно ничего делать, чтобы браузер загружал другие компоненты во время загрузки вашего HTML, он позаботится об этом за вас.

Ответ №2:

Нет — браузеру сначала нужен анализируемый HTML-документ, прежде чем он сможет начать загрузку скриптов, изображений и т.д.

Однако вы можете ускорить загрузку элементов, отличных от HTML, переместив их в разные поддомены: браузеры имеют ограничение на количество подключений для каждого хоста, которое можно обойти с помощью поддоменов. Кроме того, вы могли бы сжимать / уменьшать ваши файлы CSS / JavaScript, чтобы уменьшить их размер.

Ответ №3:

Существует возможность создания небольшого HTML-файла, который затем выполняет несколько запросов для заполнения остальной части страницы с помощью различных вызовов, подобных AJAX, но если у кого-то отключен JavaScript, страница может выглядеть действительно плохо. В некотором смысле это удаление части исходного HTML-контента и загрузка его отдельно, что может быть хорошей идеей, а может и не быть. В некотором смысле, хотя это использует больше сетевых ресурсов, поскольку в этом случае было бы много запросов на полную загрузку страницы, но это вопрос о том, какой является приемлемым компромиссом.