• 沙里软件

  • ShaliSoft.com [手机站]   办公桌收纳抽屉
  • 首页
  • 博文
  • 演示
  • 管理
  • 正确的jQuery加载方式

    网络   2014/5/15 8:51:55

    jQuery是我们用的最多的javascript函数库,占有率极高,wordpress原生自带,并且扩展性也很强。但是加载jQuery仅仅只是一行调用代码而已那么简单吗?事实上jQuery的正确调用方式,不一定所有人都知道并掌握。掌握正确的jQuery调用方式,总是会对网站有利无弊。

    确定要放在Head部分 ?

    事实上最好的情况是,js文件都不要在<head>部分进行加载,否则会影响到head部分的载入速度,直接导致网站的内容(body)载入延迟。如果你确定你不需要在head部分载入jQuery,请将载入代码移动到</body>前,准确的说是第一个会用到jQuery函数的javascript代码前。

    当然,如果你需要head部分加载jquery,也请确保所有的js文件,包括jquery,都要放在调用CSS文件的代码之后,来实现同步下载。这也是Google官方给出的建议。例如下面的加载不推荐:

    <script src=jquery.js></script>

    <link href="style.css" .../>

    而是应该使用:

    <link href="style.css" .../>

    <script src=jquery.js></script>


    确定不要异步加载 ?

    异步加载不会阻塞网页的载入,而非异步加载则会在加载本身js之前短暂阻塞浏览器的网页载入。这可能影响浏览体验。

    如果你的加载代码是

    <script type="text/javascript" src="jquery.js"></script>

    那么你需要知道这可不是异步加载的方式,这是一种同步加载。如果你不需要在页面加载后及时的调用jquery函数,你完全可以用异步加载的方式,使得网页onload之前才加载jquery,大大加快载入速度。这样的代码看起来像是Google Analytics的代码。

    (function(doc){

    var j =doc.createElement("script");

    j.type = "text/javascript";  j.async = true;  j.src = "jquery.js";

    var s = doc.getElementsByTagName("script")[0];

    s.parentNode.insertBefore(j, s);

    })(document);

    但是经我观察,大多数的时候我们需要同步加载,尤其是你还需要引入jQuery插件的时候。


    使用哪个版本的jQuery ?

    wordpress总是自带最新的jQuery库,每一个版本的使用方法总有细微的不同。越新的jQuery版本,性能提升也越高。不过,某些jquery插件可能不太兼容太新的插件,而它自己也没有推出更新。也许有些你会使用的方法函数,到了新版本发现已经被改变,曾经能工作的现在已经不能了。对于这种情况,应该遵从这样的原则,那就是在确保兼容性的同时,做到使用尽可能新的jQuery库。

    例如你以前使用1.6.2版本的jquery,到了现在你发现2.X某些函数有改变,你又不愿意去变更代码,就最好逐个调试,例如你发现1.7.2的兼容性就不错。这个时候就可以抛弃1.6.2,可以用1.7.2版本的jQuery去替换掉2.X的新版。

    使用哪个jQuery CDN库 ?

    jQuery实在是太大了!如果你的网站速度不是飞快,jquery肯定会影响到你的页面加载速度。好在百度、新浪、微软、Google等公司都推出了公共js库,方便网站主调用来缩短下载时间,而它们本身有着超快的CDN服务器,节约了下载时间。

    目前用的比较普遍的是Google提供的jquery库:

    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

    当然,百度在国内的访问速度是不可小视的:

    <script type="text/javascript" src="//libs.baidu.com/jquery/2.0.3/jquery.min.js"></script>

    新浪的CDN同样速度飞快:

    <script type="text/javascript" src="//lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script>

    不跟风,你也可以选择微软的jquery CDN:

    <script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js"></script>

    你可以直接更改上面出现的版本号来选择不同的版本。哪一个最快呢?如何选择呢?

    如果你的网站访客来自海外的不少,建议选用Google,如果主要访客是国内,选择百度也没问题。但是百度在海外的访问速度可不及Google。

    而且因为大多数的网站选择了Google的CDN,由于缓存原理,来访你的网站,可能google的CDN更快。

    如果你不是确定自己的网站下载速度飞快,我建议最好选用上述的公开CDN来节省加载时间,同时也节省了流量。

    真的要用jQuery吗?

    如果你的网站只是需要用带jquery一个很小的函数,为什么要下载这么大的文件呢?为什么不可以jquery-free?

    例如你可以考虑zepto.js,其设计目标“以最小的体积,做到最大兼容jQuery的API”。它在gzip压缩后仅仅为10KB。

    另外,jQuery有着模块设计,可以选择自己只是需要的模块。你可以参考jquery builder。


    加载jQuery的正确方式

    说了那么多,加载jquery的正确方式是什么?

    首先选好哪个CDN,或者你自己的网站托管js文件,并确定调用的位置在头部还是body,下面以Google的jquery库为例,普通的加载方式是

    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

    然而Google的服务在国内间歇性中断,所以我可以照顾一下国内访客,这么写:

    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

    <script type="text/javascript">

    window.jQuery || document.write(unescape('%3Cscript%20type%3D%22text/javascript%22%20src%3D%22//libs.baidu.com/jquery/2.0.3/jquery.min.js%22%3E%3C/script%3E'));

    </script>

    这样子即可实现如果jQuery未能加载成功,则自动加载百度的jquery库,做到万无一失了。


    阅读(917) 分享(0)

    上一篇: 利用history.pushState让Ajax改变URL
    下一篇: SEO网站优化:我的网站为什么不收录?

  • 精彩推荐

    ◆ 安装完office后 在组件服务里DCOM配置中找不到
    ◆ 微信清缓存工具,微信怎么清理缓存?
    ◆ 用回溯法解决子集和问题【C#版本】
    ◆ 实测什么物体会影响WIFI信号
    ◆ 利用UC微信分享接口进行WEB微信分享
    ◆ ASP.NET之GridView Eval() 中数据格式化或格式化数据
    ◆ css常用hack语法
    ◆ 面向对象的缺点,你了解了吗
    ◆ 我国首台可人脸识别ATM机发布 不刷脸不能取钱
    ◆ 2G网络要关闭了吗?你还不打算换4G手机?
  • 用心做事 不能唯利是图

    • 吊儿
    • 用QQ联系我17905772
  • 搜索


  • 最新文章

    • 导出Excel 格式 mso-number-format
    • 服务器iis支持tls1.2,windows server 2008 r2 中IIS启用TLS 1.2(安装SSL后用TLS 1.2)
    • MySQL配置优化
    • EditPlus 添加文件比较工具winmerge
    • 滚动悬浮固定JS特效

  • 热门文章

    • php sso单点登录实现代码
    • 中国菜刀(China chopper) 最新黑客工具
    • redis.conf中文版(基于2.4)
    • 搜索引擎名单大全
    • php图片上传类,支持加水印,生成略缩图

  • 最新图库


  • 最新评论


  • 友情链接

  • 沙里软件

  • 最近访客

    Powered by ShaliSoft.com 豫ICP备13008529号

    免责声明:本站部分内容来源于互联网,转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责,也不构成任何其他建议。如果发现侵犯版权,联系QQ17905772进行删除。