Блокирует ли загрузка JS-файлов скачивание других ресурсов в браузере?

Вопрос о параллельной загрузке скриптов

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

Однако когда я открываю инструменты разработчика в браузере и смотрю на вкладку Network, то вижу что несколько JS-файлов загружаются одновременно. Как это объяснить?

Мои наблюдения

В современных браузерах я наблюдаю параллельную загрузку скриптов, что противоречит прочитанной информации. Возможно ли что:

  • Современные браузеры изменили подход к загрузке
  • Ограничения больше не действуют
  • Я что-то неправильно понимаю в процессе

Дополнительный вопрос

Также хотелось бы лучше понять весь процесс загрузки и парсинга HTML, CSS и JavaScript браузером. Есть ли хорошие ресурсы которые объясняют эти принципы простым языком?

Буду благодарен за разъяснения по этому вопросу.

Тут небольшая путаница. Да, браузеры загружают js-файлы параллельно, но выполняют по очереди - вот подвох. Когда скрипт выполняется, он блокирует парсинг html и тормозит отрисовку страницы. На своих проектах заметил: тяжелый скрипт в head “подвешивает” страницу до завершения. Перенесёшь в конец body или добавишь async/defer - всё работает плавнее. По ресурсам - погугли “critical rendering path” или “как браузер рендерит страницу”. Там всё с картинками разжёвано.

Загрузка и выполнение - разные вещи. Браузер скачивает скрипты параллельно, но выполняет по очереди - вот тут и блокировка. На медленном интернете или с тяжелыми скриптами это особенно видно. Какие скрипты тестишь? Может они легкие и блокировка просто не заметна?