Defer parsing of JavaScript

时间:2020-04-30 作者:Bhishan Shrestha

当我测试网站的页面速度时(https://sunshineecocleaningservices.com.au/) 延迟解析JavaScript的得分为0“在初始页面加载期间解析了3.6MiB的JavaScript。延迟解析JavaScript以减少页面呈现的阻塞。”虽然JS缩小了。如何解决此问题?有没有插件什么的。

1 个回复
SO网友:Tony Djukic

您必须小心使用PageSpeed和GTMetrix以及其他此类工具,因为它们提供的结果没有上下文。他们有预先设置的规则,如“脚本应延迟和/或加载在页面末尾的结束处”</body> 标签但是,如果你想让一些脚本提供他们想要提供的功能,有些脚本就不能推迟,有些脚本必须加载到标题中(Facebook的脚本也可以这样做,LinkedIn也是如此)。因此,它们是测试和检查的好工具,可以让你知道你可以在哪里改进,但这并不意味着它们告诉你要做的事情总是百分之百正确的。

也就是说,以下是我在站点上使用的内容,用于向正在加载的脚本添加延迟标记。

function addaprefix_defer_js( $url ) {
    if ( is_user_logged_in() ) return $url;
    if ( FALSE === strpos( $url, \'.js\' ) ) return $url;
    //you\'ll want to add a list of scripts here that you do NOT want to defer, jquery.js is definately one of them
    if ( strpos( $url, \'jquery.js\' ) ) return $url; 
    return str_replace( \' src\', \' defer src\', $url );
}
add_filter( \'script_loader_tag\', \'addaprefix_defer_js\', 10 );
我在哪里addaprefix_ 将其更改为您想要/需要的函数前缀。

相关推荐

在WordPress中包含Facebook Javascript SDK

我想在我的wordpress自定义主题中包含Facebook JavaScript SDK。我可以在标准的MVC应用程序或PHP网站上完成,但使用wordpress我不知道如何继续。通常使用enqueue 作用我想直接将其添加到<head> 我的标签header.php 文件,但我不确定这是否有效。我已经阅读了FB文档,他们建议使用插件,但如果我不想使用插件,最好的方法是什么?