JS
Поскольку JS может изменить вашу веб-страницу (изменить DOM), браузеры ждут, пока все внешние JS будут загружены (параллельно), интерпретированы и выполнены перед продолжением работы с остальной частью HTML, которая следует после <script src="..." >
Поэтому рекомендуется размещать все внешние JS внизу <body>
. Таким образом, ваш HTML анализируется и обрабатывается, и у вашего пользователя возникает ощущение, что что-то происходит ...
CSS
С другой стороны, CSS не может изменить DOM, не может вносить какие-либо «тяжелые» изменения на страницу, и поэтому браузер не блокирует загрузку, анализ остальной части HTML и прогрессивный рендеринг, как в случае с JS. Кажется, что он блокирует рендеринг, но все же лучше поставить его сверху и избегать длинных FOUC . Это не блокирует загрузку, хотя
Теперь, похоже, что с ростом количества мобильных устройств размещение вашего CSS на вашем HEAD
и JS внизу не достаточно ... Вы захотите поместить ATF (выше сгиба) встроенным CSS, а остальные ваш огромный свернутый CSS вместе с вашим JS - внизу / defred и async
Взгляните на это: http://addyosmani.com/blog/detecting-critical-above-the-fold-css-with-paul-kinlan-video/