Уловка для запуска асинхронной загрузки таблицы стилей заключается в использовании <link>
элемента и установке недопустимого значения для атрибута media (я использую media = "none", но подойдет любое значение). Когда медиа-запрос оценивается как ложный, браузер все равно загрузит таблицу стилей, но не будет ждать, пока контент станет доступным, прежде чем отобразить страницу.
<link rel="stylesheet" href="css.css" media="none">
После завершения загрузки таблицы стилей атрибут мультимедиа должен иметь допустимое значение, чтобы правила стиля были применены к документу. Событие onload используется для переключения свойства media на all:
<link rel="stylesheet" href="css.css" media="none" onload="if(media!='all')media='all'">
Этот метод загрузки CSS предоставит посетителям полезный контент намного быстрее, чем стандартный подход. Критический CSS можно по-прежнему обслуживать с помощью обычного подхода блокировки (или вы можете встроить его для максимальной производительности), а некритические стили можно постепенно загружать и применять позже в процессе синтаксического анализа / рендеринга.
В этом методе используется JavaScript, но вы можете обслуживать браузеры, не поддерживающие JavaScript, путем обертывания эквивалентных блокирующих <link>
элементов в <noscript>
элемент:
<link rel="stylesheet" href="css.css" media="none" onload="if(media!='all')media='all'"><noscript><link rel="stylesheet" href="css.css"></noscript>
Вы можете увидеть операцию на www.itcha.edu.sv
Источник в http://keithclark.co.uk/