前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >页面加载慢?怎样不让 GoogleAdsense 拖速度后腿

页面加载慢?怎样不让 GoogleAdsense 拖速度后腿

作者头像
王图思睿
发布2021-06-16 15:47:05
8900
发布2021-06-16 15:47:05
举报
文章被收录于专栏:膨胀的面包膨胀的面包

GoogleAdsense 是著名的拖慢加载速度的 JS。一年前的 GoogleAdsense 的 js 获取是链接美国,谷歌嘛,连不上也是正常的,现在基本解析都是上海和北京的谷翔,速度还行,但是加载广告的速度依旧难以忍受。

图片alt
图片alt

下图可以看到,一个 1.1kb 的网页(上面的文字是通过 js 自动生成的),谷歌广告加载,需要将近 10s 加载完毕,加载大小将近 1.5MB。

图片alt
图片alt

最夸张的是,我是通过海外代理访问的,如果放在大陆打开,这甚至好几次加载失败。

虽然谷歌拥有所谓的【异步加载】,可仍然会严重拖慢速度,并且,当用户没有打算看广告时,广告仍然会加载:

简单统计了一下,我打开网页用了 1s,剩下 9s 我的浏览器上方一直在转【表示加载】,这种情况非常的讽刺,因为谷歌在 PageSpeedLight 中口口声声说需要降低 js 的渲染速度和外部链接加载。

实际上呢,刚刚的广告,谷歌向服务器发送了 57 次请求,其中 26 次 js 加载,总渲染达到 3.87 秒,接着是图片,总共将近 9 个,总大小 1.4MB。

这种地步,已经让我无法忍耐了,可以想象,在打开博客,最开始跳出来的不是博文的内容,而是毫不相关的广告,这种情况,访客好感度能好才怪呢。

那么,怎么解决?

万物皆可懒加载!

访客在上方浏览时,广告不加载,直到划到最底下,广告才开始加载,这样大大提升好感【虽然总加载速度和时间还是这个样,但是在访客看来就很舒服】

我们可以顺手拿一个谷歌广告实例开刀,我的博客广告单元是这样的;

代码语言:javascript
复制
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 自适应 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4678475430515042"
     data-ad-slot="5275519214"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

可以看到 https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js 即核心 js,那么我们只要把这个 js 压住懒加载,直到划到底下才显示即可

那么问题来了,怎么压?

答: window.addEventListener

代码语言:javascript
复制
 <script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>

所以,简单的就这么做:直接把上方懒加载代码放到 footer 最后,然后在需要展示广告的地方放上以下广告代码(别忘记换成自己的代码)即可

代码语言:javascript
复制
<!-- 自适应 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4678475430515042"
     data-ad-slot="5275519214"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

via:https://blog.cyfan.top/p/3854592e.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档