jQuery两个稳定版本的比较

2023-05-16

        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的版本是当前最好的选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery两个稳定版本的比较 的相关文章

  • 仅单击 div 内部

    我正在为一个小网站制作教程 我只想让教程气泡可点击 因此 当我们尝试单击气泡之外的某些内容时 什么也不会发生 换句话说 我希望我的 html 不可点击 而 tutorial bubble 可点击 尝试这个 jQuery function h
  • 限制可选 DOM 复选框

    我试图限制用户可以选择的复选框数量 这些复选框是为数组中的每个项目生成的 DOM 输入对象 我目前对此没有运气 因此非常感谢任何帮助 谢谢 在这里小提琴 http jsfiddle net vVxM2 222 http jsfiddle n
  • ToggleClass 动画 jQuery?

    我的网站上有一个部分 当用户单击时我希望它展开 我正在使用 jQuerytoggleClass为了这 expandable function e e preventDefault this closest article toggleCla
  • 获取点击的的DOM路径

    HTML div class lol a class rightArrow href a div 伪代码 rightArrow click function rightArrowParents this dom dom is the pse
  • 如何打开弹出窗口并用父窗口中的数据填充它?

    如何使用 JavaScript jQuery 使用父页面中 JS 变量的数据填充弹出窗口 在我的示例中 我有一个文件名数组 我在父窗口中最多列出五个 如果还有更多 我想提供一个链接来打开弹出窗口并列出数组中的每个帖子 因此 如果我打开一个包
  • 如何限制下拉列表更改而不禁用它

    如何在不禁用下拉列表的情况下限制下拉列表选项更改 意味着我无法更改选项 并且下拉列表不应该是只读的 我的问题是我的服务器没有读取禁用的元素 这是我的出价 http jsfiddle net m3v7y jQuery var lastSel
  • 使用 JQuery 根据下拉列表选择的值显示/隐藏控件

    我正在尝试使用 JQuery 根据下拉菜单的选定索引显示 隐藏 div 标签 但它不起作用 任何帮助将不胜感激 Thanks
  • jQuery 或 Javascript - 如何禁用窗口滚动而不溢出:隐藏;

    您好 是否可以在不使用的情况下禁用窗口滚动overflow hidden 当我悬停一个元素时 我试过 chat content on mouseenter function document scroll function e if e h
  • jQuery:在动画期间禁用单击

    所以我正在做一个小测验 我想禁用里面所有内容的点击 qWrap当动画运行时 从而防止垃圾点击 我尝试使用 is animated 但没有效果 有任何想法吗 HTML div ul li class qContainer ul class q
  • jquery上传完成后重定向到新页面

    我正在尝试让这个 jquery 工具与我的网站一起使用以进行文件上传 https github com blueimp jQuery File Upload https github com blueimp jQuery File Uplo
  • PHP、jQuery 和 Ajax 调用乱序

    我正在使用 jQuery 进行 Ajax 调用 我有 x 数量的 Ajax 调用附加到 div 这些 Ajax 加载请求是由 PHP foreach 循环生成的 问题是它们渲染的顺序不正确 它们被设置在数组中
  • 如何通过减少请求来改进 AJAX 实时搜索

    我正在构建一个 AJAX 实时搜索页面 到目前为止 一切都按预期运行 但我注意到我正在进行大量的 AJAX 调用 我知道发生这种情况的地点和原因 但我找不到阻止这些 AJAX 调用发生的方法 我将尝试给出快速解释 然后粘贴下面的代码 在页面
  • jquery中如何使用load函数发送数据

    我想用 jquery load 函数发送字符串数据 但它没有发送 我的代码是 function dialog data function alert data var ph Org1 ph empty ph load FrontEnd Do
  • 如何确定并打印 jQuery 版本?

    是否有一个 jQuery 函数可以返回当前加载的 jQuery 版本 你可以使用这个 fn jquery or if you re using noConflict jQuery fn jquery 当 jQuery 构建时它会自动更新 定
  • 如何在通过 .ajaxForm() 提交表单之前执行一些操作?

    我正在使用 ajaxForm 框架来发送我的数据 而无需重新加载我的页面 ReplayForm ajaxForm success function data alert Success 现在 我想在提交表单之前检查一些条件 如果条件为假 则
  • .live() 或 .livequery()

    我有一个Ajaxed的网站 Ajax的内容来自其他页面 例如about html contact html ajax 从名为 main content 的 div 获取内容 但是在 ajax 调用之后 我的其余脚本就中断了 比如tinysc
  • jquery 插件“uploadify”-从上传脚本返回响应的方法?

    我的标题代码 document ready function sampleFile uploadify uploader include uploadify uploadify swf script add list php scriptD
  • 使用 JQuery 禁用和启用所有超链接

    我有以下禁用所有超链接的内容 但在事件发生后我想再次启用它们 我该如何执行此操作 a click function return false 我认为这不仅仅是将其设置为 true 那么简单 谢谢大家 不要以这种方式绑定 点击 处理程序 而是
  • 与 IE8 兼容的最新 jQuery 版本是什么?

    我正在开发 Bootstrap 3 网站 并且我使用的 jQuery 版本 1 9 1 遇到了一些问题 我升级到 2 1 0 我的问题消失了 但是 这破坏了 IE8 兼容性 因为 2 1 0 不再支持 IE8 并且 jQuery 在该浏览器
  • 如何通过 jQuery 中的类获取特定 html 元素的innerHTML?

    我有这样的 HTML 代码 div class a html value 1 div div class a html value 2 div 我怎样才能访问html value 1 and html value 2使用jquery 分别地

随机推荐

  • SLAM 定位和导航

    码一篇文章后面看 xff1a gt https www cnblogs com hiram zhang p 10416081 html
  • 开发工具及环境配置

    一 jdk下载 安装与环境变量配置 1 下载 xff08 1 xff09 打开下载网址Java Downloads Oracle或直接搜索Oracle JDK下载 xff08 2 xff09 根据电脑系统 xff08 win linux等
  • ros2中 用python编写action 的service和client

    第一步 xff1a 定义请求反馈的变量 主要参考官网网站 xff1a Writing an action server and client C 43 43 ROS 2 Documentation Rolling documentation
  • TX2自动刷机视频教程

    TX2自动刷机视频教链接https v qq com x page b0515967lbr html
  • python 中 机器学习算法 --决策树

    文章目录 思维脑图3 1 2 用pandas加载数据集3 1 3 清洗数据集现在计算这些的实际值主队和客队最后一场比赛赢了吗 xff1f 3 2 决策树3 2 1 决策树中的参数3 2 2 决策树的使用 3 3 体育赛事结果预测 3 4 随
  • 结合OPENNI2,Aruco与OPENCV进行视觉定位

    前些时间写了篇文章把我在做这个项目中遇到的问题以及思路说了一下 传送门 http jcs130 iteye com blog 2185533 在上篇文章的思路下作了实现 已经达到了教授的要求 nbsp 首先第一步检测四个角的坐标 经试验 在
  • oracle 备份表

    一 PL SQL备份 xff08 1 xff09 打开PL SQL xff08 2 xff09 在Tools下选择Export Tables xff08 3 xff09 在列表中找到想要备份的表 xff0c 右键选择Export Data
  • 概率机器人——机器人环境交互

    状态 环境特征以状态表征 xff0c 状态是所有会对未来产生影响的机器人及其环境的所有方面因素 概率生成法则 状态转移概率 xff0c 根据条件独立 xff0c 可得到 xff1a 它指出了环境状态作为机器人控制ut的函数是如何随着事件变化
  • cmake、catkin知识点点点点

    GNU GPL GCC G 43 43 GNU xff1a 一个计划 运动 xff0c 目标是创建一套完全自由的操作系统 GPL xff1a GNU通用公共许可协议 xff0c 广泛应用的自由软件许可证 xff0c linux发行时选择了G
  • 大陆ARS-408XX毫米波雷达

    前期准备 xff1a 使用创芯科技CAN分析仪 xff0c 大陆ARS 408XX毫米波雷达 xff0c 电源 xff1a 12DC 24DC 一 安装USBCAN 驱动 1 打开设备管理器 2 鼠标右键 更新驱动 3 手动查找 4 找到自
  • 书籍记录了我技术的成长历程

    看到了有奖征文的内容 xff0c 觉得内容很好 xff0c 很想把自己读过的技术书籍整理一下 xff0c 给自己的技术类图书梳理一下思绪 xff0c 觉得是一件很值得做的事情 xff0c 花了一点时间整理了下 xff0c 与各位博友分享 x
  • 2021-11-01 福州高速公路定位测试有感

    室内定位测试大大小小经历了数十次 xff0c 这次福州的高速公路隧道测试感触颇多 第一 强大的自驱力 xff1a 从测试安排出差伊始 xff0c 团队成员主动提出听从安排 xff0c 积极配合 xff1b 讨论测试计划和方案时 xff0c
  • New Timeline的Toolbar样式设计

    最近在做新版的Timeline xff0c Toolbar Menu 的功能基本完成 xff0c 因此把截图拿出来与各位博友分享一下 新版Timeline HTML版本 主页面 xff1a 这次主要讲解一下Toolbar Menu 的功能
  • VS改大小写的快捷键

    改成小写 xff1a Ctrl 43 U 改成大写 xff1a Ctrl 43 Shift 43 U 记得要选中要修改的一段英文
  • 我的2013,我的CSDN

    2013年是我写CSDN博客的第三个年头了 xff0c 这一年我的博客访问量直线上升 xff0c 这一年我知道了什么是博客专栏 xff0c 这一年我知道如何申请CSDN专家 虽然失败了 xff0c 这一年我从CSDN博客收获了很多很多 xf
  • SQL两表之间:根据一个表的字段更新另一个表的字段

    1 写法轻松 xff0c 更新效率高 xff1a update table1 set field1 61 table2 field1 field2 61 table2 field2 from table2 where table1 id 6
  • 多边形面积计算公式

    function polygonArea points var i j var area 61 0 for i 61 0 i lt points length i 43 43 j 61 i 43 1 points length area 4
  • 《最重要的事,只有一件》读书笔记

    背景 每天都在忙忙碌碌中度过 xff0c 感觉到很累 xff0c 但仔细思考一下好像也没有收获 仔细想一想 xff0c 在每天之中 xff0c 大脑主动或被动的接受了太多的信息 xff0c 如果没有给信息分出轻重缓急 xff0c 整理归类
  • table合并单元格colspan和rowspan

    span style font family none code span style background color rgb 255 255 0 span style font family none code span style f
  • jQuery两个稳定版本的比较

    jquery历经了多个版本的更新 xff0c 版本上的比较貌似没什么必要性 xff0c 一般来说新的版本会比旧的版本各方面都略有提升 xff0c 但由于新版中增加了各种新的功能 xff0c 难免会引起bug的发生 评估一个版本是否适合当前开