admin管理员组文章数量:1133892
I'm currently doing some speed optimisation and one of the main things scoring the site down is:-
"Preload key requests 2.64 s Consider using to prioritize fetching resources that are currently requested later in page load. Learn more."
I enqueue all my styles and JS files in my functions.php as follows:-
wp_register_script('jquery-ui', get_template_directory_uri() . '/assets/js/jquery-ui.min.js', array(), '1.12.1');
wp_enqueue_script('jquery-ui');
wp_register_style( 'jquery-ui-css', get_template_directory_uri() . '/assets/css/jquery-ui.min.css', array(), '1.12.1');
wp_enqueue_style( 'jquery-ui-css' );
How would I go about using rel="preload"
with some of these files?
I'm currently doing some speed optimisation and one of the main things scoring the site down is:-
"Preload key requests 2.64 s Consider using to prioritize fetching resources that are currently requested later in page load. Learn more."
I enqueue all my styles and JS files in my functions.php as follows:-
wp_register_script('jquery-ui', get_template_directory_uri() . '/assets/js/jquery-ui.min.js', array(), '1.12.1');
wp_enqueue_script('jquery-ui');
wp_register_style( 'jquery-ui-css', get_template_directory_uri() . '/assets/css/jquery-ui.min.css', array(), '1.12.1');
wp_enqueue_style( 'jquery-ui-css' );
How would I go about using rel="preload"
with some of these files?
1 Answer
Reset to default 1I am presuming you want to add this as resource hints on the HTML and not as an server push header. As preload
is not supported by WP native wp_resource_hints
function, you would need to create a custom function printing the preload
tags and add somewhere in the beginning of head section of the HTML. Something like the following.
// Adds preload resource hint to wp_head hook
add_action( 'wp_head', 'add_preload_resource_hint', -1);
/**
* Writes preload resource hints.
*
* Writes preload resource hints.
*/
function add_preload_resource_hint() {
$template_directory = get_template_directory_uri();
// preloading a stylesheet
echo "<link rel=\"preload\" href=\"{$template_directory}/css/mystyles.css\" as=\"style\">";
// preloading a script.
echo "<link rel=\"preload\" href=\"{$template_directory}/js/myscript.js\" as=\"script\">";
// preloading a font
echo "<link rel=\"preload\" href=\"{$template_directory}/fonts/myfont.woff2\" as=\"font\">";
// preloading an image.
echo "<link rel=\"preload\" href=\"{$template_directory}/images/myimage.jpg\" as=\"font\">";
// preloading a video.
echo "<link rel=\"preload\" href=\"{$template_directory}/video/myvideo.m4v\" as=\"media\">";
// preloading page 2 of a multi-page post
echo "<link rel=\"preload\" href=\"/page/2/" as=\"document\">";
// if preloading from another domain, it will probably be have CORS rules
// and you should use the crossorigin attribute
echo "<link rel=\"preload\" href=\"{$template_directory}/fonts/myfont.woff2\" as=\"font\" crossorigin>";
// for all types of content and attributes value
// please check the latest W3C recommendation at
// https://www.w3.org/TR/preload/
};
Important: the code above is intended to show a concept, aa possible way to deal with your needs. You will need to adapt to your needs and would be a good idea to abstract it and make reusable and more generalist.
A few other important points:
- You should exercise caution and avoid using
preload
only for a few selected and really important and required resources - support for preload at the time of this writing is around 90% according to caniuse.com
- this directive is still a recommendation draft. Therefore, the supported media types and attributes might change in the future. Check the latest W3C recommendation before using it.
本文标签: wp enqueue scriptPreload key requests using wpenqueue
版权声明:本文标题:wp enqueue script - Preload key requests using wp_enqueue 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736763378a1951677.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论