本站承诺永不接任何虚假欺骗、联盟广告、弹窗广告、病毒广告、诱导充值等影响用户体验的广告,广告屏蔽插件会影响本站部分功能,还请不要屏蔽本站广告,感谢支持!

当前位置:首页 / 正文

2021-01-06 | 骚操作,编程技术 | 6421 次阅读 | 等你评论 | 6 次点赞 | 繁体

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

图片alt

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

图片alt

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

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

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

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

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

那么,怎么解决?

万物皆可懒加载!

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

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

<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

 <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 最后,然后在需要展示广告的地方放上以下广告代码(别忘记换成自己的代码)即可

<!-- 自适应 -->
<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

标签: javascriptgoogle加速前端骚操作异步

猜你喜欢
薅京东羊毛必备抓取Cookies教程
本文只介绍如何利用安卓手机浏览器获取京东 cookie 教程,具体为什么要获取 cookie 以及如何薅羊毛请查看:闲置服务器薅京东的羊毛—青龙面板部署与京东签到第一步,下载工具去各大应用商店搜...
Lazysizes.js图片懒加载的使用
lazysizes 是一种快速(无垃圾),对 SEO 友好且可自动初始化的 lazyloader,用于图像(包括响应图像 picture/ srcset),iframe,脚本/小部件等。它还通过...
typecho使用文件缓存加快打开速度
typecho 是一个伪静态的博客系统,如果不使用缓存,每次打开页面都会查询数据库,访问人数多了以后服务器压力倍增。但是,typecho 是一个 php 的程序,我们可以利用 php 将实时页面...
白嫖移动,联通,电信手机短信通知
无论在生活中或者工作中,对于一些比较紧急的事情,可能需要发送个通知!比如:自建的服务器突然宕机,如何自动发短信通知运维主管?后台服务日志大量报错如何第一时间发短信通知码农geigei?类似的情景...
通用的检测到广告屏蔽插件进行弹窗提示实现方法
用的 js 方法来检测,按理说所有博客都能使用,就是在打开网页的时候进行一次判断。如果发现没有加载广告代码,就会出来一个弹窗来提示浏览者将本站加到广告拦截插件的白名单里面。别喷我,个人站长经营实...
如何找回微信已过期文件教程
现在基本人人都会使用微信,微信里面保存着很多文件。但是过段时间去看,你可能由于当时没有保存或者根本就没有点开过,微信文件名称显示红色,这表示已经过期了。难道我们要再问别人重发一遍吗?这可能会有点...
别再用PS了,教你用五行Python代码实现批量抠图
对于会 PhotoShop 的人来说,抠图是非常简单的操作了,有时候几秒钟就能扣好一张图。不过对于一些比较复杂的图,有时候还是需要花点时间的,今天就给大家带了一个非常快速简单的办法,用 Python
分享几个免费 IP 定位 api
在做定位的朋友,如果只是单纯的想获取地址而又不想集成高德等第三方 sdk,可以试试以下地址: ``` https://ip.seeip.org/geoip https://ip.seeip.or
(首次提交评论需审核通过才会显示,请勿重复提交)