WordPress博客JavaScript脚本延迟和异步加载教程

每次页面渲染时,WordPress都会加载一系列外部引用JavaScript。

这些包括由WordPress添加的标准脚本以及由使用wp_enqueue_scripts函数的主题和插件添加的一些脚本。 根据脚本的类型,它可能位于网页的头部,正文或页脚部分。

位于页面头部和主体部分内的脚本可能会导致页面加载延迟,因为浏览器甚至在页面内容之前尝试加载和执行这些脚本。

这就是为什么这些脚本被称为渲染阻塞javascripts。

解决此问题的最直接的方法是将所有脚本移动到页面的页脚,但如果这种办法不可行,则可以考虑为这些脚本添加延迟或异步属性标记,就是我们常常挂在挂在嘴边的延迟加载、异步加载。

让我们深入了解这些属性以及它们如何帮助您改善页面加载时间。

什么是异步和延迟属性?

以下是async和defer属性的作用:

  • 异步属性:async属性即异步加载脚本。 换句话说,确保脚本与页面的其他相关内容一起异步加载。
  • 延迟属性:延迟属性即延迟加载脚本。 它确保仅在页面的所有内容完成加载后才执行脚本。

所有现代主流浏览器都支持这两个属性,包括Firefox,Chrome和Internet Explorer。 自IE10以来,Internet Explorer也已经添加了对这些属性的支持。

具有async和defer属性的脚本标记示例如下:

<script src='http://sitename.com/js/scripts.js' async='async' type='text/javascript'></script>
<script src='http://sitename.com/js/scripts.js' defer='defer' type='text/javascript'></script>

 

将“异步/延迟”属性添加到阻塞渲染脚本

在这个章节中,我们将介绍三种不同的方法,将这些属性添加到阻塞渲染javascripts中。 这些方法如下:

  • 方法1:向所有脚本添加延迟/异步。
  • 方法2:向大部分脚本添加延迟/异步,部分例外。
  • 方法3:仅向选择性脚本添加延迟/异步。 (最灵活的方法,因为它允许因地制宜地为脚本添加延迟或者异步属性。)

您可以根据自己的实际情况使用适合您的方法。

方法1:向所有脚本添加延迟/异步属性。

如果您想毫无例外地将async或defer属性添加到所有脚本,则可以使用以下代码。

打开主题的functions.php页面,将此代码添加到页面底部。

/*function to add async to all scripts*/
function js_async_attr($tag){
# 添加异步加载属性到所有js脚本
return str_replace( ' src', ' async="async" src', $tag );
}
add_filter( 'script_loader_tag', 'js_async_attr', 10 );

 

注意:上面的函数会将async属性添加到所有脚本中。 如果您想使用defer属性,请使用defer =“defer”替换async =“async”

方法2:向大部分脚本添加延迟/异步属性,部分例外。

上述方法为所有脚本添加了async或defer属性。 如果您希望将这些属性添加到大部分脚本中,但有例外的,则可以使用以下代码:

/*function to add async to all scripts*/
function js_async_attr($tag){
# 不添加异步加载属性的例外列表(修改js文件名为你的网站js文件名) 
$scripts_to_exclude = array('script-name1.js', 'script-name2.js', 'script-name3.js');
foreach($scripts_to_exclude as $exclude_script){
        if(true == strpos($tag, $exclude_script ) )
        return $tag;
}


# 添加异步加载属性到其余js文件
return str_replace( ' src', ' async="async" src', $tag );
}
add_filter( 'script_loader_tag', 'js_async_attr', 10 );

 

注意:如果您想使用defer,请在上面的代码中使用defer =“defer”替换async =“async”

将script-name1.js,script-name2.js等替换为要排除的脚本的名称。

关于WordPress的脚本延时加载和异步加载技术的分享,到此结束,如果你对这一块还是有不了解的地方,欢迎留言交流。如果你觉得手动设置WordPress脚本文件的延迟加载或者异步加载属性比较麻烦,你也可以借助一些插件来实现。

(1)
去看你博客的头像去看你博客管理组
上一篇 2019-08-23 下午8:41
下一篇 2019-08-24 下午10:22

相关文章

  • 推荐三款WordPress自动加水印插件

    在之前去看你博客图片都是没有加上水印的,因为我觉得没必要去给图片加上水印,但是几次发现博客中的原创文章连图带文的被转载且还没有加上转载来源地址,更可气的是转载文章却比原创文章收录要快,所以想着还是给图片加上博客的LOGO的水印吧! 如果我们要一个图片一个图片的加上水印,那么这将会是一个非常庞大的工程,所以我选择用插件来帮助我加上图片水印,下面就给大家介绍几款…

  • 一段代码修改WordPress后台登录地址

    使用Wordpress程序制作一个好的网站后,程序的默认后台地址为“ 网站域名/ wp-login.php”,出于网站安全的考虑,这种固定的后台地址会带来很多安全隐患。 这个时候我们就要修改WordPress默认登录地址了,使它变的只有我们自己才能知道。 那么怎么去修改wordpress后台登录地址链接呢? 方法/步骤 1.我们直接将下面的代码复制到Word…

  • WordPress仿Win10资源管理器主题

    本主题是一款比较个性的主题,平时面对资源管理器多了,觉得资源管理器非常好看,于是就仿造资源管理器做出了这一款主题。适合专门写文档,做给自己看的主题。

  • 如何修复WordPress数据库连接错误

    当你遇到连接WordPress数据库链接错误时,可以有多个原因造成了这种错误。这时候 ,我们就要排查出是哪里出现的问题 ,我将在这篇文章中分享如何修复WordPress数据库连接错误时的故障排除和所有可能的原因。  为什么数据库连接会发生错误 通常 , 这种错误出现是因为你的网站不能够连接数据库。这里有几个原因 : Web服务器没有响应你的请求。 服务器收到…

  • WordPress评论回复邮件提醒

    生命不息,折腾不止!今天用一下午的时间用来折腾邮件回复效果了,期间遇到的问题和解决方法在下一篇文章和大家详细的说下! 首先是用户评论后,博主收到邮件通知效果图 用户评论邮件提醒的好处就是能够第一时间博主能够和用户交流讨论,我觉得这是很有必要的。 废话不多说,下面直接开始教程 第一步 首先进入你需要设置为发件人的邮箱账号->设置->账户安全-&gt…

  • WordPress使用火车头采集器采集文章教程–寻找目标网站

    教程总目录: 我们首先需要确定你要采集什么内容,然后根据不同内容去找目标网站。 比如我要采集IT资讯、云服务器类的内容。 以景安的文章为例,我先找到了他的文章都放在了哪个网站。 在百度这样搜索site:zzidc.com windows2008 site:zzidc.com代表仅搜索这个域名下的内容,包括www域名和其他二级域名的内容 空格后跟一个windo…

kiqi