Я пытаюсь оптимизировать скорость загрузки страницы, используя рекомендации по параметрам PageSpeed Insights, в частности, отложить сценарии JavaScripts, чтобы не блокировать отображение содержимого страницы.
Таким образом, похоже, что HTML5 представил функцию preatty cool, async
атрибут, который позволяет загружать скрипты асинхронно в "хаотичном" режиме. Существует еще один атрибут, defer
, который загружает их также асинхронно, но в "упорядоченном" режиме (как я понял из этой статьи).
Итак, я пришел к выводу, что
<script src='//////my.js'>
) в defer
атрибута.async
.Это правильный вывод?
PS.
Бесплатный вопрос:
Является ли факт добавления сценариев в конце документа, автоматически "разблокирует" оформление документа? Как я мог понять, некоторые скрипты блокируют рендеринг, без различия их местоположения в документе (<head>
или непосредственно перед </body>
)...
1. Всегда используйте (для каждого
<script src='//////my.js'>
) атрибут<script src='//////my.js'>
.
Вы должны только откладывать сценарии, которые можно отложить. В некоторых случаях вам может потребоваться гарантировать порядок выполнения или полагаться на функции, которые должны выполняться в строке. Например, скрипты, вызывающие document.write
не должны откладываться.
2. В случае, если сценарий не является критическим для нагрузки (например, jQuery или jQuery-ui), может использоваться атрибут
async
.
"критическая нагрузка" не имеет какого-либо конкретного значения, поэтому это плохой выбор фразировки. async
следует использовать для скриптов, которые могут выполняться в любом порядке и не зависят от других скриптов.
$
а он не загружен, мне это кажется довольно критичным?