今天给博客做了点修改,然后发现加载网页真的快了不少,特别是在宿舍网速很不给力的情况下。由于放了百度广告,打开文章页加载到标题就会停顿一下加载广告,网速卡的话要等好一会儿,虽说广告没什么点击率,但是总比没有强,是吧。
那么如何将广告对网页加载的影响降到最小是我们所要考虑的,王晔童鞋的这篇文章《避免谷歌广告影响页面加载速度》就很好的解决了这个问题,此人隐藏甚深,平时一般不抛头露面,好东西都藏着,大家一般很难注意到,所以我还是要推荐一下下。
因为目前浏览器总是阻塞式(blocking)的读取网页引用的外部JavaScript,所以雅虎网页优化14条准则中也提到把外部引用的脚本放在页面的底部,差不多是</body>之前。这样网页基本上能最快渲染完毕,然后再加载这些外部脚本。
他的方法是这样的:
<script type="text/javascript">
function speed_ads() {
var ad = document.getElementById('adsense'),
loader = document.getElementById('adsense-loader');
if (ad && loader) {
ad.appendChild(loader);
loader.style.display='block';
ad.style.display='block';
ad.style.height='60px';
}
}
window.onload=function() {speed_ads();}
</script>
<html>
<head>
<!--上述脚本位置-->
</head>
<body>
<!--指定的广告显示位置-->
<div id="adsense"></div>
<!--其他内容位置-->
<p></p>
<p></p>
<!--广告代码位置-->
<div style="display:none">
<div id="adsense-loader" style="display:block">
<script type="text/javascript">
// 谷歌or百度广告代码
</script>
</div>
</div>
</body>
</html>
王晔同学只给了网页上面只有一个广告时候的解决方法,如果有几个怎么办?
我们可以用下面的脚本替换原来的脚本,当然要注意一一对应。
<script type="text/javascript">
function speed_ads(loader, ad) {
var ad = document.getElementById(ad),
loader = document.getElementById(loader);
if (ad && loader) {
ad.appendChild(loader);
loader.style.display='block';
ad.style.display='block';
}
}
window.onload=function() {
speed_ads('adsense-loader0', 'adsense0');
speed_ads('adsense-loader1', 'adsense1');
speed_ads('adsense-loader2', 'adsense2');
}
</script>
这样的话,页面加载就快了很多了。
太晚了.明天研究一下.
经过测试发现在google chrome浏览器下此方法首页打开网页无法显示出来google adsense,只有在本页刷新后才会正常显示出来,不知有没有发现这个问题。
@bestchao木有啊,不管是百度的还是google的都能正常显示,可能是你自己没有添加正确。
@William没错的呀,www.bestchao.com 我的网站你帮忙检查下,我替换成百度的广告就可以显示正常。问题出在哪里了?