`
thecloud
  • 浏览: 884801 次
文章分类
社区版块
存档分类
最新评论

jQuery两个稳定版本的比较

 
阅读更多
jquery历经了多个版本的更新,版本上的比较貌似没什么必要性,一般来说新的版本会比旧的版本各方面都略有提升,但由于新版中增加了各种新的功能,难免会引起bug的发生。评估一个版本是否适合当前开发场景使用,通过多几方面来衡量比较靠谱。以下我选用业界中比较稳定两个jquery来进行对比,它们分别是1.4.2版本以及1.7.1版本来 。

1. 性能上的分析

1.1带宽比较

1.4.2体积为71K,1.7.1体积为92k,压缩后的体积相差无几,现金的网络情况可忽视21K的差距。

1.2各浏览器上的性能比较

本次性能测试并没有覆盖所有的浏览器,只选用当前比较流行的几个版本,包括了:IE6、IE8、FF11、Chrome 18

测试用例:

Js代码
<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js">
</script>
<script type="text/javascript">
  var $171 = jQuery.noConflict();
</script>
<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js">
</script>
<script type="text/javascript">
  var $142 = jQuery.noConflict();
</script>

<div class="wrapper">
  <div class="innerWrapper">
    <div class="button">
        <a href="" id="button" class="buttonRef">  
           <span class="buttonText">Text</span> 
       </a>
    </div>
  </div>
</div>

<script>
  var context71 = $171("div.wrapper");
  var context42 = $142("div.wrapper");
</script>

<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js">
</script>
<script type="text/javascript">
  var $171 = jQuery.noConflict();
</script>
<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js">
</script>
<script type="text/javascript">
  var $142 = jQuery.noConflict();
</script>

<div class="wrapper">
  <div class="innerWrapper">
    <div class="button">
        <a href="" id="button" class="buttonRef">  
           <span class="buttonText">Text</span> 
       </a>
    </div>
  </div>
</div>

<script>
  var context71 = $171("div.wrapper");
  var context42 = $142("div.wrapper");
</script>

在1秒里循环执行以下测试用例

Js代码
Get - Class 1.4.2	var item = $142(".buttonRef");
Get Class1.7.1	var item = $171(".buttonRef");
Context-Class 1.4.2	var item = $142(".buttonRef", context42);
Context-Class 1.7.1	var item = $171(".buttonRef", context71);
Find-Class 1.4.2	var item = context42.find(".buttonRef");
Find-Class 1.7.1	var item = conttext71.find(".buttonRef");

其运行结果就不一一显示出来,感兴趣的童鞋们可以到http://jsperf.com/jq1-4-2-vs-jq1-7-1/3具体查看各浏览器的性能比较。

简略汇总了各浏览器的数据:单位:(ops/sec)

总的来说,jquery1.7.1除了在IE6上性能没太大的差别以外,在其它三个浏览器均有较大性能的提升。

2.稳定性分析

js稳定性,起码保证浏览器在运行jquery的时候不会奔溃,同时我们从其发布策略以及其下个版本有没重大bug修复来来衡量哪个版本比较稳定。

首先看看两个版本各自发布的时间,同时它们各自跟下个版本的发布时间间距。

Html代码
Jquery 1.4.2  Posted February 19th, 2010 by John Resig
Jquery 1.4.3  Posted October 16th, 2010 by John Resig
Changelog :http://api.jquery.com/category/version/1.4.3/          


Jquery 1.7.1 Posted November 3rd, 2011 by dmethvin
Jquery 1.7.2 Posted March 21st, 2012 by dmethvin
Changelog:http://blog.jquery.com/2012/03/21/jquery-1-7-2-released/

从发布时间间距和更改日志来说,1.4.2版本更稳定点。

3.功能上分析

Html代码
<strong>1.7.1新增的方法 
     removeData([name|list]) (支持以数组为参数的批量操作)

属性:(新增)
        prop(name|pro|key,val|fn)
        removeProp(name)
    
选择器:(新增)
        focus1.6+

筛选:(重载了方法)
       is(expr|obj|ele|fn)1.6*
       closest(expr,[con]|obj|ele)1.6*
       nextUntil([exp|ele][,fil])1.6*
       parentsUntil([exp|ele][,fil])1.6*
       prevUntil([exp|ele][,fil])1.6*
	
事件:(新增)
       on(eve,[sel],[data],fn)1.7+
       off(eve,[sel],[fn])1.7+
       delegate(sel,[type],[data],fn)
       undelegate([sel,[type],fn])1.6*

Deferred:
    新增了整个模块

工具:(重载了方法)
    $.map(arr|obj,callback)1.6*
</strong>

总的来说,jq1.7.2重载了不少方法,也新增了一些方法,但对于我们日常开发来说都不是太常用,当然功能更多我们有更多的选择,不过相对来说跟jq1.4.2没有太多的优越性。

4.可扩展性、兼容性分析

由于Jquery的版本都是不向后兼容的,导致了基于jquery开发的插件兼容性有问题,当新版本的jquery推出后,如果开发想升级的话,要看插件是否支持。通常情况下,在最新版jquery版本下,现有插件可能无法正常使用。开发者使用的插件越多,这种情况出现概率越高。

同时,由于jquery1.4.2版本发布时间比较早,基于这版本开发的插件数量庞大,而对应版本的开发社区相当活跃,很多诡异的问题,网上都有对应的解决方案。

从可扩展性来分析吧,无论是1.7.1还是1.4.2留给开发扩展的方法只有两个,分别是jquery.extend和jquery.fn.extend,一种是添加静态属性和方法、一种是对象添加属性和方法,扩展方式比较简单,经历了多个版本,扩展方式都一致,因此在扩展性上面没什么可比较的。

5.结论

综上所述,jquery1.7.1的版本在多数浏览器上的性能表现无疑比 jquery1.4.2更好,而稳定性和兼容性方面jquery1.4.2更出色点,其它地方基本没什么差距。

从我们目前前端开发情况来说吧,引用到第三方的扩展库相对来说比较少,而1.4.2拥有庞大插件数量的优势对于我们来说没什么意义(习惯自研的)。我们更多的关注框架性能是否优越,可扩展性是否良好,因此,jquery1.7.1的版本是当前最好的选择。

分享到:
评论

相关推荐

    jquery插件使用方法大全

     jQuery 1.0(2006年8月):该库的第一个稳定版本,已经具有了对CSS选择符、事件处理和AJAX交互的稳健支持。 jQuery 1.1(2007年1月):这一版大幅简化了API。许多较少使用的方法被合并,减少了需要掌握和解释的...

    jQuery-1.11.3.min.js.zip

    jQuery1.11.3 版本来自jQuery官网,在1.x版本中,jQuery1.11.3比较稳定,经典,本次提供的包括jquery-1.11.3.min.js和jquery-1.11.3.js两个文件,欢迎各位开发人员使用! jquery-1.11.3 直引地址: 百度压缩版...

    jQuery离线API(纯网页版和air版)

    我开发的时候,觉得这几个版本是最稳定的离线api,有速查功能 网页版的隔一段时间会自动更新,网页版有中英两个版本 希望三款有适合你的

    深入PHP与jQuery开发 pdf格式

    最终在2006年8月26日,jQuery的第一个稳定版本1.0发布了。 从那以后,jQuery一步一步成长到 1.4.2(本书写作时),拥有极多的插件(大部分来自开发社区)。插件是jQuery核心库之外的扩展组件。在第10章你将深入了解...

    jquery黑色风格下拉菜单插件附用法代码.rar

    这是一款基于jquery实现的黑色风格下拉菜单插件附用法代码,一个经典形式的下拉菜单,大家在网上已经见到过比较多的这种菜单了,本款插件实现的菜单兼容各大浏览器,比较稳定,可以支持两级子菜单。风格和字体样式在...

    php-htmldiff:一个用于比较两个HTML文件片段并使用简单HTML突出显示差异的库。 包括对复杂列表和表格进行比较的支持

    php-htmldiff是一个用于比较两个HTML文件/片段并使用简单HTML突出显示差异的库。 此HTML Diff实现是从,并已通过新功能,错误修复和对原始代码的增强进行了修改。 有关这些修改的更多信息,请阅读或查看 。 安装 ...

    hive-framework:使用Sass构建的网站开发框架,对jQuery UI的可选支持

    Chrome,Edge,Firefox,Safari和Opera,最近的两个稳定版本。 Firefox ESR最新的要点发布。 上述和其他浏览器的旧版本可能会运行,但我们已经验证了这些版本。 要求 构建此存储库需要: 建立 安装所需工具 该项目...

    clone-section-of-form-ES6-or-jQuery:现在在npm上。 使用香草JavaScript(ES6)或jQuery复制表单的一部分,以保持可访问性(a11y)

    现在,使用jQuery或普通JavaScript(ES6),您可以复制表单的一部分(以及销毁最后克隆的部分),整个表单或仅输入一两个输入。 这还允许用户添加具有唯一的,重复的ID , for , name和label的空白表单部分,以...

    jquery缓动swing liner控制动画过程不同时刻的速度

    jQuery只包含了两个缓动方法:swing和linear。linear方法提供了一个稳定的动画,以使得动画的每个步骤都是相同的(例如,如果要让一个元素以逐渐变化的方式穿过屏幕,每一步的距离和前一步都是相同的)。swing要更加...

    基于JAVA在线考试管理系统的毕业设计,系统主要分为两个模块:教师管理模块和学生考试模块

    系统主要分为两个模块:教师管理模块和学生考试模块。教师管理模块包括题库管理、试卷管理和班级管理等功能。学生考试模块则包括试卷展示、考试答题和成绩查询等功能。 ## 系统设计与实现 系统采用B/S架构,前端...

    最新酷睿合买程序源码 企业版 带完整数据+wap端(2套版本).txt

    个是酷睿的企业版,前端采用全新的Vue2.0 HTML5 CSS3 Javascri-pt jQuery Ajax JSON等语言及框架开发,游戏前端采用全新Egret(白鹭)游戏引擎开发,后端采用全新ThinkPHP5.0框架开发、后端语言采用全新的...

    Bootstrap精美稳定全套CMS后台皮肤源码

    一个完全响应式,基于Bootstrap3.3.6最新版本开发的扁平化主题,她采用了主流的左右两栏式布局,使用了Html5+CSS3等现代技术,她提供了诸多的强大的可以重新组合的UI组件,并集成了最新的jQuery版本(v2.1.4),当然,...

    基于PHP天地网络-网络学院全站的毕业设计,MySQL数据库开发,前端采用Bootstrap框架和jQuery库实现页面样式和交

    这个毕设旨在利用PHP语言和相关技术,开发一个高效、稳定、安全的网络学院全站系统,为学生和教师提供优质的在线学习和教学服务。 ## 用户模块 用户模块包括学生和教师两种角色,学生可以注册、登录、修改个人信息,...

    电子商务平台源码下载

    本系统运用asp.net 2.0开发,数据库使用SQL2000(可以放在SQL2005上),包括前台和后台两个部分。 前台主要运用jquery+CSS 构建的展示订购平台。 后台是运用CSS+EXTJS构建的一个完整的权限管理+销售订单管理的系统。...

    乐易拍订单管理系统.NET版 v1.0.rar

    本系统运用asp.net 2.0开发,数据库使用SQL2000(可以放在SQL2005上),包括前台和后台两个部分。 前台主要运用jquery CSS 构建的展示订购平台。 后台是运用CSS EXTJS构建的一个完整的权限管理 销售订单管理的系统...

    乐易拍电子商务平台 v1.0.rar

    本系统运用asp.net 2.0开发,数据库使用SQL2000(可以放在SQL2005上),包括前台和后台两个部分。 前台主要运用jquery CSS 构建的展示订购平台。 后台是运用CSS EXTJS构建的一个完整的权限管理 销售订单管理的系统...

    乐易拍电子商务系统 1.0.rar

    本系统运用asp.net 2.0开发,数据库使用SQL2000(可以放在SQL2005上),包括前台和后台两个部分。 前台主要运用jquery CSS 构建的展示订购平台。 后台是运用CSS EXTJS构建的一个完整的权限管理 销售订单管理的系统...

    乐易拍订单管理系统 v1.0

    本系统运用asp.net 2.0开发,数据库使用SQL2000(可以放在SQL2005上),包括前台和后台两个部分。 前台主要运用jquery+CSS 构建的展示订购平台。 后台是运用CSS+EXTJS构建的一个完整的权限管理+销售订单管理的系统...

    基于SSM框架的音乐网站

    该系统主要分为前台和后台两大功能模块,共包含两个角色:用 户、管理员。 具体的系统功能如下: 1.前台功能 前台首页、音乐浏览、音乐搜索、音乐分类查找、音乐详情、音 乐播放、音乐下载、添加收藏、新闻公告、...

    hyperagent:适用于JavaScript的HAL客户端

    依存关系hyperagent.js具有一个硬性依赖关系和两个软性依赖关系: (+ URITemplate.js) 兼容jQuery的AJAX实现(例如 , , ),默认为:jQuery Promise / A +实现(例如 , ),默认值:q 要使用默认实现以外的其他...

Global site tag (gtag.js) - Google Analytics