利用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 相关文章推荐
11款新鲜的jQuery插件[附所有demo下载]
Jan 24 Javascript
jQuery的:parent选择器定义和用法
Jul 01 Javascript
node.js中的url.format方法使用说明
Dec 10 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
jQuery的end()方法使用详解
Jul 15 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
Jun 25 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
Feb 12 jQuery
Vue.directive()的用法和实例详解
Mar 04 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
Jul 20 Javascript
Vue 禁用浏览器的前进后退操作
Sep 04 Javascript
JavaScript构造函数原理及实现流程解析
Nov 19 Javascript
JavaScript代码实现简单计算器
Dec 27 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代码在网页上生成图片
2015/07/01 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
php头像上传预览实例代码
2017/05/02 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
Python中urllib+urllib2+cookielib模块编写爬虫实战
2016/01/20 Python
python 文件操作api(文件操作函数)
2016/08/28 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
python实现验证码识别功能
2018/06/07 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
2018/12/28 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
2020/01/13 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
python中upper是做什么用的
2020/07/20 Python
Python字符串三种格式化输出
2020/09/17 Python
交通事故私了协议书
2014/04/16 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
酒店前台岗位职责
2015/04/16 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
红色电影观后感
2015/06/18 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python