[wp-trac] [WordPress Trac] #55639: Implement Async CSS
WordPress Trac
noreply at wordpress.org
Thu Apr 28 10:14:06 UTC 2022
#55639: Implement Async CSS
-----------------------------+-----------------------------
Reporter: mihaidumitrascu | Owner: (none)
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: General | Version:
Severity: normal | Keywords: has-patch
Focuses: javascript |
-----------------------------+-----------------------------
Initially created as a Performance Lab issue:
https://github.com/WordPress/performance/issues/120 by @dainemawer. Copied
description below:
Another pattern to possibly follow is Asynchronous CSS - this was
suggested by the Filament Group at some point and has had some decent
results: https://www.filamentgroup.com/lab/load-css-simpler/
It is slightly hacky, but it involves loading CSS files with media
attribute set to print - this allows the browser to load the stylesheet in
a non render block fashion. Using the onload attribute, we can set media
back to all so that the stylesheet is applied as one would expect. As
fallback, the original link is included in a a <noscript> tag incase JS
borks out:
{{{
<link rel="stylesheet" href="/path/to/my.css" media="print"
onload="this.media='all'" />
<noscript>
<!-- No JS -->
<link rel="stylesheet" href="/path/to/my.css" media="all" />
</noscript>
}}}
This could possibly be an extension of wp_enqueue_style by adding another
parameter:
{{{#!php
<?php wp_enqueue_style( $handle, $src, $deps, $ver, $media = 'all', $async
= true ); ?>
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/55639>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list