利用JS延迟加载百度分享代码,提高网页速度


Posted in Javascript onJuly 01, 2013

发现很多网站在放置百度分享代码的时候,简单的将分享代码放置到固定的网页位置就完事了,这是非常致命的方式。因为,我经常打开一个网页的时候,发现在网页加载到分享代码的时候,有时候花上几秒的时候来请求百度的服务器,最后展示分享按钮。

其实,像这样对网页来说不是非常重要的功能,我们大可以用JS来延迟加载,从而提高网页主要内容的快速加载显示。
这里分享下我的放置方式。
一、copy百度分享代码,如下:

<!-- Baidu Button BEGIN -->
<div id="bdshare" class="bdshare_t bds_tools_32 get-codes-bdshare"> 
<a class="bds_tsina"></a> 
<a class="bds_qzone"></a> 
<a class="bds_tqq"></a> 
<a class="bds_renren"></a> 
<a class="bds_douban"></a> 
<span class="bds_more"></span> 
<a class="shareCount"></a> 
</div> 
<script type="text/javascript" id="bdshare_js" data="type=tools&uid=0" ></script> 
<script type="text/javascript" id="bdshell_js"></script> 
<script type="text/javascript"> 
document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000) 
</script> 
<!-- Baidu Button END -->

二、放置代码
认真分析上面的分享代码,我们可以发现,其中有3个js脚本标签,这些都是有可能影响网页呈现速度的,最后发现,其实,只有最后一个<script>标签的作用是请求百度服务器,展示分享图片和链接。那么,这条JS我们大可放到最后加载。
下面是我做的一个demo:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
    <head> 
        <title>JS延迟加载百度分享代码,提高网页速度</title> 
        <meta http-equiv="Content-Type" content="text/html;charset=gb2312" /> 
        <style type="text/css"> 
            body{margin:0px;padding:0px;font-size:12px;} 
            #copyright{clear:both;} 
        </style> 
    </head>     <body> 
        <div id="baidu-share"> 
            <!-- Baidu Button BEGIN -->
            <div id="bdshare" class="bdshare_t bds_tools_32 get-codes-bdshare"> 
            <a class="bds_tsina"></a> 
            <a class="bds_qzone"></a> 
            <a class="bds_tqq"></a> 
            <a class="bds_renren"></a> 
            <a class="bds_douban"></a> 
            <span class="bds_more"></span> 
            <a class="shareCount"></a> 
            </div> 
            <script type="text/javascript" id="bdshare_js" data="type=tools&uid=0" ></script> 
            <script type="text/javascript" id="bdshell_js"></script> 
            <!-- Baidu Button END -->
        </div> 
        <div id="copyright"> 
            <a href="http://codejia.net">编程图书PDF下载【codejia.net】</a> 
        </div> 
        <script type="text/javascript"> 
            window.onload = shareCode; 
            function shareCode(){ 
                document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000); 
            } 
        </script> 
    </body> 
</html>

分析:通过上面的demo,可以发现我只是单纯的将最后一个有src属性的script标签,放到最后动态加载的,并且是在window.onload之后加载。之前加载的都是纯html标签代码,并不会有多影响网页速度。
百度分享代码通过这样调整后就算百度的服务器挂了,也不会影响自己的网页正常显示。

其实,这样的技巧还有很多地方都可以用。想网站统计代码、百度谷歌搜索代码、第三方广告代码等,我们都可以放到网页底部最后来加载,这样即使第三方的服务器宕机,我们自己的机器也不会受到多少影响。

Javascript 相关文章推荐
childNodes.length与children.length的区别
May 14 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
Nov 16 Javascript
JS 实现Table相同行的单元格自动合并示例代码
Aug 27 Javascript
JS.elementGetStyle(element, style)应用示例
Sep 24 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
Jun 23 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
Mar 04 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
Apr 26 Javascript
seajs下require书写约定实例分析
May 16 Javascript
vue集成chart.js的实现方法
Aug 20 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 Javascript
vue实现简单跑马灯效果
May 25 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
Oct 29 Javascript
jQuery提交多个表单的小例子
Jun 30 #Javascript
用jquery存取照片的具体实现方法
Jun 30 #Javascript
js正文内容高亮效果的实现方法
Jun 30 #Javascript
Jquery网页出现的乱码问题的三种解决方法
Jun 30 #Javascript
JavaScript全排列的六种算法 具体实现
Jun 29 #Javascript
利用js 进行输入框自动匹配字符的小例子
Jun 29 #Javascript
JS Replace()的高级使用方法介绍
Jun 29 #Javascript
You might like
php输出xml格式字符串(用的这个)
2012/07/12 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
Add Formatted Text to a Word Document
2007/06/15 Javascript
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
使用js判断当前时区TimeZone是否是夏令时
2014/02/23 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
DOM 事件流详解
2015/01/20 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
Python的print用法示例
2014/02/11 Python
Sanic框架应用部署方法详解
2018/07/18 Python
Python循环结构的应用场景详解
2019/07/11 Python
Python requests模块session代码实例
2020/04/14 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
keras 多gpu并行运行案例
2020/06/10 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
食品采购员岗位职责
2014/04/14 职场文书
政治学求职信
2014/06/03 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
党员转正大会主持词
2015/07/02 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
【海涛教你打DOTA】虚空假面第一视角骨弓3房29杀
2022/04/01 DOTA