Load async css: html — How to load CSS Asynchronously

Содержание

Async CSS / Тяпк

Материал перепечатан чуть более чем полностью отсюда

Когда браузер находит в документе ссылку на CSS-файл, он приостанавливает процесс визуализации и начинает формировать модель CSSOM. Чтобы ускорить процесс, упрощайте CSS и используйте медиазапросы. Также убедитесь, что браузер может быстро скачать CSS-файлы.

HTML и CSS замедляют вывод страницы. HTML-документ нужно обработать для создания модели DOM, без которой на странице не будет контента. А что дает обработка CSS, можно увидеть на иллюстрации ниже.

TL;DR

  • По умолчанию при обработке CSS визуализация страницы блокируется.
  • С помощью медиазапросов обработку некоторых CSS-файлов можно отложить.
  • Браузер скачивает все CSS-файлы (как с медиазапросами, так и без них).
«Нью-Йорк таймс» с CSS»Нью-Йорк таймс» без CSS

На иллюстрации изображен сайт газеты Нью-Йорк таймс с CSS и без (эффект на скриншоте справа часто называютпоявлением нестилизованного контента). Как видно, пользоваться страницей без CSS почти невозможно. Чтобы избежать такой ситуации, браузер обрабатывает CSS-файл сразу же, как только находит его в HTML-документе. В результате страница выводится на экран только после того, как браузер создаст обе модели: и DOM, и CSSOM.

Обработка CSS задерживает вывод страницы на экран! Ускорьте процесс визуализации, предоставив браузеру быстрый доступ к CSS-файлу.

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

Для этого добавьте в код медиазапрос:

<link href="style.css" rel="stylesheet">
<link href="print.css" rel="stylesheet" media="print">
<link href="other.css" rel="stylesheet" media="(min-width: 40em)">

В медиазапросе указывается тип устройства и, если необходимо, условия запроса. Рассмотрим приведенный выше пример кода. Первому CSS-файлу не присвоен тип устройства, поэтому он будет применяться по умолчанию и, соответственно, задерживать вывод страницы. Второй файл применяется при печати — возможно, с его помощью упрощается макет страницы, меняется шрифт и т. д. На это указывает медиазапрос print

, который сообщит браузеру, что данный CSS-файл обрабатывать сразу не нужно. И, наконец, ссылка на третий файл содержит медиазапрос с условием. Только в том случае, если это условие будет выполнено, браузер скачает CSS-файл и приостановит вывод страницы.

Медиазапросы позволяют адаптировать страницу под определенное устройство, например монитор или принтер, и изменять стиль в зависимости от ориентации экрана, его размера и других подобных факторов. Ссылаясь на CSS-файлы, обязательно учитывайте их предназначение! Используйте медиазапросы, чтобы сократить время вывода страницы на экран.

Давайте разберем следующий пример:

<link href="style.css"    rel="stylesheet">
<link href="style.css"    rel="stylesheet" media="all">
<link href="portrait.css" rel="stylesheet" media="orientation:portrait">
<link href="print.css"    rel="stylesheet" media="print">
  • Первый CSS-файл заблокирует вывод страницы, так как его необходимо обработать.
  • Несмотря на медиазапрос, CSS-файл во второй строке также заблокирует вывод страницы. Дело в типе устройства all — браузер присваивает это значение по умолчанию всем CSS-файлам без медиазапроса. Поэтому вторая ссылка в примере эквивалентна первой.
  • Третья ссылка содержит медиазапрос с условием, которое будет проверено при загрузке страницы. При портретной ориентации устройства браузер заблокирует вывод страницы и начнет обработку CSS; при альбомной ориентации браузер продолжит создание DOM.
  • Четвертый CSS-файл используется только для печати, поэтому браузер не будет блокировать вывод страницы.

Учтите, что под блокировкой подразумевается только приостановка вывода страницы. При этом браузер скачивает все CSS-файлы независимо от того, блокируют они вывод или нет. Приоритет скачивания выше у тех файлов, без которых вывод страницы невозможен.


И еще несколько ссылок:

Async-Loading – вопросы и ответы по программированию

Я знаю, что этот пакет устарел, но хотел бы понять, что происходит — Если посмотреть на документы , значит ли это, что если window.JSON истинно, запустите полную функцию? А если нет, загрузите файл…

Я новичок в AngularJS и пытаюсь исправить проблему, когда некоторые из HTML-кода отображаются перед определением состояния ng-if. Я hsing ng-cloak, как упоминалось во многих других URL-адресах стек…

5 лет, 11 месяцев назад ree

Я немного сбит с толку: как правило, когда асинхронная загрузка изображений в какой-то вид списка (будь то на Android или iOS или в абстрактном на другой платформе), вы по сути должны это сделать…..

7 лет, 1 месяц назад Fattie

При работе со многими прокручиваемыми изображениями вам нужно избегать проблем с загрузкой при скимминге, в то время как пользователь выполняет быструю прокрутку. Самое простое и часто лучшее решен…

7 лет, 1 месяц назад Fattie

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

3 года, 10 месяцев назад Pavlus

Я пытаюсь использовать LoaderCallbacks (импортированный из android.app.LoaderManager) для фрагмента, но когда я завершил все кодирование и попытался запустить его, он дает мне сообщение об ошибке j…

CSS JS Manager, Async JavaScript, Defer Render Blocking CSS supports WooCommerce — Плагин для WordPress

Documentation

  • Load / remove css or js if the request is from a mobile device
  • Load / remove css or js if the request is from a desktop device
  • Defer Loading of CSS file
  • Load any JS file Async or Defer
  • Remove any JS from all the pages, or on some pages based on various conditional rules
  • Remove any CSS file from all the pages, or on some pages based on various conditional rules
  • Async any JS file on all the pages or on selective pages
  • You can remove or add JS file based on post type
  • You can remove or add CSS file based on post type
  • You can remove or add JS file based on page id
  • You can remove or add CSS file based on page id

Manage critical css

Now you can load different critical css for different pages or post or custom post type and optimize your site for speed

Step 1: Go to CSS JS Manager >> Critical CSS setting
select the post type where you want to use the Critical CSS,

Say you want to use it on Post, Product

Step 2: go to Critical CSS >> Add New Critical css
you can add as many critical css as you want
Say you want to have Different critical css for home page, and post, and product
so you will create 3 different critical css and load the critical css There

Use this to generate critical css https://www.sitelocity.com/critical-path-css-generator

Step 3: Go to respective post or page where you will like to use those critical css and select them

How to Defer Render Blocking CSS using CSS JS Manager?

How to remove CSS file from complete website or particular page?

The same steps apply to JS as well just add JS link and select JS from the Drop drop down

Premium support: We respond to all support topics within 24 hours

How to Defer Render Blocking CSS using CSS JS Manager?

  • Copy the URL of this file without the query string variable ( without this “?ver=5.0.3“
  • URL: http://localhost/telco/wp-content/themes/twentyseventeen/style.css
  • Now Open the CSS JS Manager
  • Click on “Add New Resource”
  • Now add the URL from the Step 2
  • Set method as “Async“
  • Selection Logic “Add This“
  • On All Pages

How to remove CSS file from complete website?

You have a css file that is not used in your website and you want to remove it from your website completely.

you can do that easily. just follow all the steps given in the Defer process, you can keep the loading method as any thing (as it wont mater as the css will be removed) then at the bottom

If you want to allow JS file on only few particular page and remove from all other

All the steps remain same, You need to copy the JS file URL, Select Resource type as “JS” from the drop down.

Select the method of the loading for the JS (it has Defer, Async, and normal)

In selection logic click “Add this on”

Click on “Selected Pages”

In the Single Resource ID enter the Page id of the pages where you want this js to be allowed

E,g: 1,2,22 this are the ID of the page where this js will be allowed to load an apart from this it wont load on any other page

Does it support WooCommerce

Yes, WooCommerce Page tags like is_product, is_category, is_cart, is_shop and other. So you can load or remove script specific to the WooCommerce page rules

I want to remove the css if request is from mobile device

Yes you can remove css or js based on the device if it is mobile or desktop

I want to async a js file for mobile device

Yes you can do that in the pro version

«CSS JS Manager, Async JavaScript, Defer Render Blocking CSS supports WooCommerce» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

Самый простой способ асинхронной загрузки CSS

Одна из наиболее эффективных вещей, которые мы можем сделать для повышения производительности и устойчивости страницы, — это загрузка CSS таким образом, чтобы не задерживать рендеринг страницы. Это связано с тем, что по умолчанию браузеры загружают внешний CSS синхронно — останавливая рендеринг всей страницы, пока загружается и анализируется CSS — и то, и другое влечет за собой потенциальные задержки. Конечно, по крайней мере, часть CSS сайта должна быть загружена до того, как странице будет разрешено начать рендеринг, и для немедленной передачи этого исходного CSS в браузер мы рекомендуем встраивать (или проталкивать сервер HTTP2) CSS.Для сайтов с небольшим общим объемом этого может быть достаточно, но если CSS большой (скажем, больше 15–20 КБ), разделение его по приоритетам может помочь производительности. После разделения менее важный CSS должен быть загружен в фоновом режиме — AKA асинхронно . В этом посте я хочу описать наш предпочтительный способ сделать это в наши дни, который на самом деле существует уже много лет.

Есть несколько способов заставить CSS загружаться асинхронно, но ни один из них не является настолько интуитивно понятным, как вы могли ожидать.В отличие от элементов script , здесь нет атрибута async или defer , который можно было бы просто применить к элементу link , поэтому в течение многих лет мы поддерживали проект loadCSS, чтобы немного упростить процесс загрузки асинхронного CSS. Однако недавно браузеры стандартизировали свое поведение загрузки CSS, поэтому специальный скрипт, такой как loadCSS, для обработки их незначительных различий, вероятно, больше не нужен.

Код #

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

    

Разрушение… #

Эта строка HTML краткая, но не очень интуитивно понятная, поэтому давайте разберемся, что здесь происходит.

Для начала, для атрибута media link устанавливается значение print . «Печать» — это носитель типа , который говорит: «Применяйте правила этой таблицы стилей для печатных носителей» или, другими словами, применяйте их, когда пользователь пытается распечатать страницу.По общему признанию, мы хотим, чтобы наша таблица стилей применялась ко всем носителям (особенно экранам), а не только к печати, но, объявив тип носителя, не соответствующий текущей среде, мы можем добиться интересного и полезного эффекта: браузер загрузит таблицу стилей без задержки отрисовки страницы, асинхронно! Это полезно, но это еще не все, что нам нужно. Мы также хотим, чтобы CSS фактически применил к экранной среде после загрузки. Для этого мы можем использовать атрибут onload , чтобы установить для носителя link значение все по завершении загрузки.

Не может rel = preload тоже сделать это? #

Да, аналогично! В последние год или два мы использовали ссылку [rel = preload] (вместо rel = stylesheet ), чтобы получить аналогичный шаблон, как указано выше (переключение атрибута rel после загрузки вместо носителя атрибута соответственно). Этот подход по-прежнему работает нормально, однако есть несколько недостатков, которые следует учитывать при использовании предварительной загрузки . Во-первых, поддержка предварительной загрузки браузером по-прежнему невелика, поэтому полифил (например, тот, который предоставляет loadCSS) необходим, если вы хотите полагаться на него для получения и применения таблицы стилей в браузерах.Что еще более важно, preload извлекает файлы очень рано, с наивысшим приоритетом, потенциально снижая приоритет других важных загрузок, и это может иметь более высокий приоритет, чем вам на самом деле нужно для некритичного CSS.

К счастью, если вам понадобится высокоприоритетная выборка, которую предоставляет rel = preload (в браузерах, которые ее поддерживают), вы можете комбинировать ее с вышеуказанным шаблоном, например:

   

Учитывая простой и декларативный характер приведенного выше кода, мы предпочли бы его полифилу, поэтому теперь мы снова отдаем предпочтение подходу с переключением печатных носителей.

Любой, кто следил за тем, как мы писали об этом в течение последних нескольких лет, может вспомнить, что мы использовали значения атрибутов мультимедиа, такие как «only x», чтобы достичь того же эффекта, что и «print», предоставив значение, не соответствующее ни одной среде, поскольку x — это бессмысленный тип носителя.Когда браузеры сталкиваются с несоответствующими типами мультимедиа, они в настоящее время обрабатывают их все одинаково — они все равно загружают файл. Тем не менее, некоторые команды разработчиков браузеров начинают рассматривать различие между несоответствующими типами мультимедиа и теми, которые недействительны (или вообще не распознаются браузером), и потенциально не запрашивают файлы, которые связаны с использованием недопустимых типов мультимедиа. . Это нарушит работу многих существующих реализаций загрузки CSS, поэтому маловероятно, но в целях безопасности мы рекомендуем использовать допустимый, несоответствующий тип, например print .

Вам может не понадобиться loadCSS… #

Мы продолжаем поддерживать loadCSS и считаем его полезным в некоторых ситуациях, особенно для программного извлечения файла CSS из JavaScript, например: loadCSS ("/ path / to / my.css") . Если вы уже используете loadCSS или его шаблон полифилла rel = preload , вам не обязательно что-либо менять. Внутри он использует ту же механику, что описана в этой статье.

Тем не менее, мы все больше и больше обнаруживаем, что простой подход HTML может быть всем, что вам нужно.А простота часто бывает лучше.

Спасибо за чтение! #

Вопросы? Напишите нам в Twitter!

Все сообщения в блоге

html — Как загрузить CSS асинхронно


Простой ответ (полная поддержка браузера):

  
  

Задокументированный ответ (с дополнительной предварительной загрузкой и откатом сценария):

  
 

 
 

 
 
  

Сочетание предварительной загрузки и асинхронности:

Если вам нужен предварительно загруженный и асинхронный CSS, это решение просто объединяет две строки из задокументированного ответа выше, делая его немного чище.Но это не будет работать в Firefox, пока они не поддержат ключевое слово preload. И снова, как подробно описано в задокументированном ответе выше, предварительная загрузка на самом деле может быть бесполезной.

  

  

Дополнительные сведения:

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

Благодарим filament group за их многочисленные асинхронные решения CSS.

html — Как лучше всего загружать CSS async?

По умолчанию CSS обрабатывается как ресурс блокировки рендеринга, что означает что браузер не будет отображать обработанный контент, пока CSSOM не будет построен. Убедитесь, что ваш CSS минимален, доставляйте его так быстро, как возможно, и используйте типов носителей и запросов для разблокировки рендеринг.

— Разработчики Google

  • По умолчанию CSS обрабатывается как ресурс блокировки рендеринга.
  • Типы мультимедиа и мультимедийные запросы позволяют нам помечать некоторые ресурсы CSS как необработанные. блокировка.
  • Браузер загружает все ресурсы CSS, независимо от блокирующее или неблокирующее поведение.

CSS — это ресурс, блокирующий рендеринг. Доставьте его клиенту как можно скорее, чтобы оптимизировать время до первого рендеринга.

Однако что, если у нас есть некоторые стили CSS, которые используются только при определенных условиях, например, когда страница печатается или проецируется на большой монитор? Было бы неплохо, если бы нам не приходилось блокировать рендеринг на этих ресурсах.

CSS «медиа-типы» и «медиа-запросы» позволяют нам решать следующие варианты использования:

  


  

Используя медиа-запросы, мы можем адаптировать нашу презентацию к конкретным вариантам использования, таким как отображение по сравнению с печатью, а также к динамическим условиям, таким как изменение ориентации экрана, события изменения размера и многое другое. При объявлении ресурсов таблицы стилей обратите особое внимание на тип носителя и запросы; они сильно влияют на производительность критически важного пути рендеринга.

Давайте рассмотрим несколько практических примеров:

  



  
  • Первое объявление — это блокировка рендеринга и соответствует во всех условиях.
  • Второе объявление также блокирует рендеринг: «all» является типом по умолчанию, поэтому, если вы не укажете какой-либо тип, для него неявно будет установлено значение «all». Следовательно, первое и второе объявления фактически эквивалентны.
  • Третье объявление содержит динамический медиа-запрос, который оценивается при загрузке страницы. В зависимости от ориентации устройства во время загрузки страницы portrait.css может блокировать или не блокировать рендеринг.
  • Последнее объявление применяется только тогда, когда страница печатается, поэтому при первой загрузке страницы в браузер не происходит блокировка рендеринга.

Источник — CSS с блокировкой рендеринга —

Как загрузить CSS асинхронно

В отличие от JavaScript, в CSS нет собственного способа асинхронной загрузки. Нет атрибутов async или defer для элементов ссылки , как для элементов сценария .

Раньше для этого я использовал вспомогательную функцию JavaScript, loadCSS от Filament Group.

Но умные люди из Filament нашли способ , почти родной , для асинхронной загрузки CSS, не требующий вспомогательных функций.

Давай проверим.

Зачем вам это нужно?

CSS — это блокировка рендеринга. Пока браузер загружает его, он перестает рисовать документ.

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

  1. Если размер HTML + CSS уменьшен и сжат с помощью gzip, он превышает 14 КБ (размер одного HTTP-запроса туда и обратно), загрузка подмножества асинхронного CSS-кода может уменьшить блокировку рендеринга.
  2. Поскольку веб-шрифты производят вспышек невидимого текста , мы откладываем их использование до тех пор, пока они не будут полностью загружены. Это делает их отличным кандидатом для асинхронной загрузки, поскольку они в любом случае не критичны.

Давайте посмотрим, как работает эта техника.

Постепенное расширение ссылки

элемент

Новейший метод от Filament Group предполагает использование элемента link , как обычно, но с двумя небольшими изменениями.

Сначала установите media на print . Затем добавьте к нему событие onload , которое переключает media на все после загрузки файла CSS. В качестве бонуса вы также можете установить onload на null after.

    

Скотт Джель объясняет , почему метод работает, в статье на сайте Filament.

Объявив тип мультимедиа, не соответствующий текущей среде, мы можем добиться интересного и полезного эффекта: браузер загрузит таблицу стилей, не задерживая рендеринг страницы, асинхронно!

Так здорово!

А как насчет

преднатяга ?

В ответ на вчерашнюю статью о шрифтах с самостоятельным размещением я получил несколько писем по электронной почте с вопросами об атрибуте preload .

По моему собственному опыту и тестированию, этот атрибут действительно замедлял рендеринг страниц для меня.Статья Filament намекает, почему это могло происходить со мной.

Что еще более важно, preload извлекает файлы очень рано, с наивысшим приоритетом, потенциально снижая приоритет других важных загрузок, и это может иметь более высокий приоритет, чем вам на самом деле нужно для некритического CSS.

Конечно, ваш пробег может отличаться. Они предлагают исправление в своей статье, но новый подход, описанный выше, отлично работает как есть.

Отложить некритические CSS

• Обновлено

Появляется в: Быстрое время загрузки

Файлы CSS являются ресурсами, блокирующими рендеринг: они должны быть загружены и обработаны до того, как браузер отобразит страницу .Отображение веб-страниц, содержащих излишне большие стили, занимает больше времени.

В этом руководстве вы узнаете, как отложить некритичный CSS с целью оптимизации критического пути рендеринга и улучшения First Contentful Paint (FCP).

Загрузка CSS неоптимальным способом #

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

Эта страница запрашивает файл CSS с восемью классами, но не со всеми из них. они необходимы для рендеринга «видимого» контента.

Цель этого руководства — оптимизировать эту страницу, чтобы только критических стилей загружались синхронно, а остальные (например, применяемые к абзацам) загружались неблокирующим образом.

Measure #

Запустите Lighthouse на странице и перейдите в раздел Performance .

Отчет показывает метрику First Contentful Paint со значением «1 с» и возможность Устранить ресурсы, блокирующие рендеринг , указывая на стиль .css file:

CSS, который мы используем для этого демонстрационного сайта, довольно мал. Если вы запрашивали файлы CSS большего размера (что не является редкостью в производственных сценариях), и если Lighthouse обнаружит, что на странице есть не менее 2048 байт правил CSS, которые не использовались при рендеринге содержимого над сгибом , вы также получите предложение под названием Удалить неиспользуемый CSS .

Чтобы визуализировать, как этот CSS блокирует рендеринг:

  1. Откройте страницу в Chrome.
  2. Нажмите Control + Shift + J (или Command + Option + J на Mac), чтобы открыть DevTools.
  3. Щелкните вкладку Performance .
  4. На панели «Производительность» щелкните Перезагрузить .

В полученной трассировке вы увидите, что маркер FCP помещается сразу после завершения загрузки CSS:

Это означает, что браузеру необходимо дождаться загрузки и обработки всего CSS, прежде чем рисовать один пиксель. на экране.

Optimize #

Чтобы оптимизировать эту страницу, вам необходимо знать, какие классы считаются «критическими». Для этого вы воспользуетесь инструментом покрытия:

  1. В DevTools откройте меню команд, нажав Control + Shift + P или Command + Shift + P (Mac).
  2. Введите «Покрытие» и выберите Показать покрытие .
  3. Нажмите кнопку Обновить , чтобы перезагрузить страницу и начать захват покрытия.

Дважды щелкните отчет, чтобы увидеть классы, отмеченные двумя цветами:

  • Зеленый ( критический ): это классы, необходимые браузеру для отображения видимого содержимого (например, заголовка, подзаголовка и кнопок аккордеона. ).
  • Красный ( некритичный ): эти стили применяются к контенту, который не отображается сразу (например, абзацы внутри аккордеонов).

С помощью этой информации оптимизируйте свой CSS, чтобы браузер начинал обрабатывать критические стили сразу после загрузки страницы, откладывая некритические стили CSS на потом:

  • Извлеките определения классов, отмеченные зеленым в отчете, полученном из инструмента покрытия и поместите эти классы в блок
    • Затем асинхронно загрузите остальные классы, применив следующий шаблон:
       

    Это нестандартный способ загрузки CSS. Вот как это работает:

    • link rel = "preload" as = "style" запрашивает таблицу стилей асинхронно. Подробнее о preload можно узнать в разделе Preload critical assets
    • Атрибут onload в ссылке позволяет обрабатывать CSS после завершения загрузки.
    • "обнуление" обработчика onload после его использования помогает некоторым браузерам избежать повторного вызова обработчика при переключении атрибута rel.
    • Ссылка на таблицу стилей внутри элемента noscript работает как резерв для браузеров, которые не выполняют JavaScript.

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

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

    Monitor #

    Используйте DevTools, чтобы запустить еще одну трассировку Performance на оптимизированной странице.

    Маркер FCP появляется перед тем, как страница запрашивает CSS, что означает, что браузеру не нужно ждать загрузки CSS перед рендерингом страницы:

    В качестве последнего шага запустите Lighthouse на оптимизированной странице.

    В отчете вы увидите, что страница FCP была уменьшена на 0,2 с (улучшение на 20%!):

    Предложение Устранить блокирующие рендеринг ресурсы больше не ниже Возможности , а теперь принадлежит к разделу Пройденный аудит :

    Следующие шаги и ссылки #

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

    Последнее обновление: Улучшить статью

    Атрибут async HTML-скрипта

    ❮ HTML тег

    Попробуй сам "

    Определение и использование

    Атрибут async является логическим атрибутом.

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

    Примечание: Атрибут async предназначен только для внешних скриптов (и должен использоваться только в том случае, если присутствует атрибут src ).

    Примечание: Есть несколько способов выполнения внешнего сценария:

    • Если присутствует async : сценарий загружается параллельно с анализом страницы и выполняется, как только она доступно (до завершения разбора)
    • Если присутствует defer (а не async ): Скрипт загружается параллельно с анализом страницы и выполняется после того, как страница завершила синтаксический анализ
    • Если ни async , ни присутствует defer : скрипт загружается и выполняется немедленно, блокирование синтаксического анализа до завершения скрипта

    Поддержка браузера

    Числа в таблице указывают первую версию браузера, полностью поддерживающую атрибут.

    Атрибут
    асинхронный 8,0 10,0 3,6 5,1 15,0

    Синтаксис


    ❮ HTML тег