Когда браузер обнаруживает элемент script
, он должен оценить JavaScript, содержащийся в этом элементе, потому что скрипт может изменить содержимое страницы (через document.write
) или проверить текущее состояние страницы.
Если элемент script
загружает сценарий с использованием атрибута src
, загрузка других ресурсов (JavaScript, CSS, изображения и т. Д.) Будет заблокирована до загрузки текущего сценария.
Оба эти фактора могут замедлить воспринимаемое время загрузки вашей страницы.
Если ваш JavaScript не изменяет страницу или вам не нужно проверять состояние страницы, пока она не загрузится, вы можете пометить свой элемент script
с помощью defer="defer"
(поддерживается IE 6+ и Firefox 3.5 +) что указывает на то, что оценка сценария может произойти «позже». Перемещение ваших элементов script
вниз страницы фактически делает то же самое - поскольку ваши скрипты появляются в конце документа, они будут оцениваться после загрузки CSS, изображений и т. Д. И рендеринга HTML-кода.