利用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 相关文章推荐
在Javascript中为String对象添加trim,ltrim,rtrim方法
Sep 22 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
Mar 13 Javascript
Javascript冒泡排序算法详解
Dec 03 Javascript
基于js实现投票的实例代码
Aug 04 Javascript
java必学必会之static关键字
Dec 03 Javascript
浅析$(function) ready和onload 的区别
Sep 03 Javascript
jQuery中delegate()方法的用法详解
Oct 13 Javascript
Jquery-data的三种用法
Apr 18 jQuery
vue地区选择组件教程详解
May 04 Javascript
jQuery实现列表的增加和删除功能
Jun 14 jQuery
使用mixins实现elementUI表单全局验证的解决方法
Apr 02 Javascript
简单说说如何使用vue-router插件的方法
Apr 08 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学习 变量使用总结
2011/03/24 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
webpack dll打包重复问题优化的解决
2018/10/10 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
使用python实现链表操作
2018/01/26 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
python线性插值解析
2020/07/05 Python
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
师范院校学生自荐信范文
2013/12/27 职场文书
战略合作意向书
2014/07/29 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
2015年乡镇党务公开工作总结
2015/05/19 职场文书
教师节感想
2015/08/11 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书