利用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 相关文章推荐
比较搞笑的js陷阱题
Feb 07 Javascript
JavaScript Event学习补遗 addEventSimple
Feb 11 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
Jun 02 Javascript
JavaScript中遍历对象的property的3种方法介绍
Dec 30 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
Jun 21 Javascript
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
AngulaJS路由 ui-router 传参实例
Apr 28 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 jQuery
ES6 Object属性新的写法实例小结
Jun 25 Javascript
使用axios请求接口,几种content-type的区别详解
Oct 29 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
Jul 19 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
Aug 19 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的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
JS模拟多线程
2007/02/07 Javascript
js 动态选中下拉框
2009/11/26 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
JavaScript作用域链使用介绍
2013/08/29 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
2017/10/19 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
使用python Django做网页
2013/11/04 Python
详解Python中的__new__()方法的使用
2015/04/09 Python
Python2.x中文乱码问题解决方法
2015/06/02 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
2017/12/20 Python
python3实现名片管理系统
2020/11/29 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
python实现dijkstra最短路由算法
2019/01/17 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
资深生产主管自我评价
2013/09/22 职场文书
销售人员个人求职信
2013/09/26 职场文书
合作投资意向书
2014/04/01 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
volatile保证可见性及重排序方法
2022/08/05 Java/Android