Gets the best eligible loading strategy for a script.
Parameters
$handle
stringrequired- The script handle.
Source
private function get_eligible_loading_strategy( $handle ) {
$intended_strategy = (string) $this->get_data( $handle, 'strategy' );
// Bail early if there is no intended strategy.
if ( ! $intended_strategy ) {
return '';
}
/*
* If the intended strategy is 'defer', limit the initial list of eligible
* strategies, since 'async' can fallback to 'defer', but not vice-versa.
*/
$initial_strategy = ( 'defer' === $intended_strategy ) ? array( 'defer' ) : null;
$eligible_strategies = $this->filter_eligible_strategies( $handle, $initial_strategy );
// Return early once we know the eligible strategy is blocking.
if ( empty( $eligible_strategies ) ) {
return '';
}
return in_array( 'async', $eligible_strategies, true ) ? 'async' : 'defer';
}
Changelog
Version | Description |
---|---|
6.3.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.