利用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 相关文章推荐
不错的asp中显示新闻的功能
Oct 13 Javascript
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
Aug 13 Javascript
DOM基础教程之使用DOM控制表格
Jan 20 Javascript
jQuery取得iframe中元素的常用方法详解
Jan 14 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
Mar 02 Javascript
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
Puppeteer 爬取动态生成的网页实战
Nov 14 Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 Javascript
Vue项目中Api的组织和返回数据处理的操作
Nov 04 Javascript
详解ECMAScript2019/ES10新属性
Dec 06 Javascript
解决Antd Table表头加Icon和气泡提示的坑
Nov 17 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数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
php递归函数怎么用才有效
2018/02/24 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
RequireJS用法简单示例
2018/08/20 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
ES6中的类(Class)示例详解
2020/12/09 Javascript
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
什么是属性访问器
2015/10/26 面试题
承办会议欢迎词
2014/01/17 职场文书
后勤主管岗位职责
2014/03/01 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
婚庆答谢词大全
2015/09/29 职场文书
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android