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两个稳定版本的比较 的相关文章

  • 如何设置必须输入特定数字的字段?

    我想知道如何创建一个需要输入特定数字或文本的字段 例如 激活码 以及在输入的确认答案的情况下移动到 网页 并且在未确认的情况下移动到 另一页面 的按钮 使用必需的属性
  • Angularjs : $locationProvider.hashPrefix("!") ;

    我想将网址显示为 www test com 因为我正在使用 locationProvider hashPrefix 但它显示网址为 www test com 我想 哈希之前而不是哈希之后 Thanks var app angular mod
  • 选择单选按钮时隐藏/显示 3 个文本框

    我有 2 个单选按钮 选择一个文本框时 我想显示 3 个文本框 并在选择其他文本框时隐藏它 这是代码 这是我的 2 个单选按钮
  • 如果选中复选框则显示 div

    我正在尝试构建类似 WordPress 选项的东西 用于在创建文章时切换字段可见性 我所构建的依赖于 click函数使用相应的字段名称切换父项 我想知道如果选中该复选框 执行此操作的最佳方法是什么 因为如果您选中一个框并重新加载页面 因为它
  • 如何为 jQuery 插件设置私有变量?

    我想创建一个简单的插件 它使用元素的文本作为默认值 或者您可以在调用插件时设置此值 但是 如果我不设置该值 并为多个元素调用插件 则默认值会成倍增加 function fn reText function options var setti
  • javascript setInterval 不适用于对象

    所以 我正在尝试创建一个 javascript 对象 并使用 setInterval 方法 这似乎不起作用 如果我删除引号 则该方法将运行一次 有什么想法吗 另外 我正在使用 Jquery Yacoby 和
  • 动态突出显示时向

    添加项目符号点?

    Update 例子 p Text Text p 在示例中 是否可以选择第二个 文本 单词 p 元素并单击按钮仅动态添加项目符号点到选定的 单词 有没有可能 在一个 p p Text p 突出显示从 p 元素并添加项目符号点到按钮上动态单击的
  • Jquery,在表中设置td的值?

    我创建动态表 tr and td 标签 td 标签之一获取 id detailInfo 我在某个按钮上有一个 onclick 函数 我想在按下按钮后在 td detailInfo 中设置一些值 那么如何设置 id 为 detailInfo
  • jQuery Clockpicker afterHourSelect

    早上好 这是我在 stackoverflow 上的第一个问题 所以请怜悯 我正在使用jQuery 时钟选择器插件 https weareoutman github io clockpicker 对于某些形式 对于我的一些用户来说 时钟选择器
  • Rails 4 使用 ajax、jquery、:remote => true 和 respond_to 渲染部分

    使用 AJAX 动态渲染页面以响应提交的表单似乎很常见 其他类似的问题都没有集中于如何以一般方式做到这一点 我能找到的关于这个主题的最好的博客文章在这里 http www gotealeaf com blog the detailed gu
  • 创建后将事件处理程序添加到 jQuery UI 日期选择器

    我有以下场景 在我的母版页中我有 datepicker datepicker changeYear true changeMonth true dateFormat dd mm yy duration fast 这样 我分配 datepic
  • 限制可选 DOM 复选框

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

    我正在使用一个电子商务平台 该平台无法重新排序产品属性字段的选项 这真的很糟糕 因为要插入新选项 您几乎必须删除所有现有选项并重新开始 我正在尝试在客户端进行操作 这是我正在处理的内容 这是针对鞋码的 9 EE 9 1 2 EE 10 EE
  • 如何向 jquery-file-upload basic-plugin 添加取消上传按钮

    我正在使用 jquery file upload 和 Rails 4 我从https github com tors jquery fileupload rails paperclip example https github com to
  • jQuery 从选择选项切换 div

    我需要从下拉选择选项框中切换 div 我想要它类似于汇编选择 http www ryancramer com projects asmselect examples example1 html对于 jquery 但我不想列出选项标签 而是希
  • 如何调用 google 的 getBasicProfile() 来仅单击按钮即可登录 google?

    我在我的网站上使用谷歌登录
  • 如何检测元素内容何时发生变化

    我正在寻找一种方法来监视元素内动态填充 无页面重新加载 内容 以便我可以将类添加到另一个元素 到目前为止我有这个 HTML div class message container div class messages error span
  • 将 HTML 表格导出到 Excel

    我在 ASP NET MVC 视图页面上有 HTML 表 现在我必须将该表导出到 Excel 1 我使用部分视图 Inquiries ascx 来显示数据库中的表数据 使用LINQ to Entity 2 我还使用了 UITableFilt
  • 使用 JQuery 根据下拉列表选择的值显示/隐藏控件

    我正在尝试使用 JQuery 根据下拉菜单的选定索引显示 隐藏 div 标签 但它不起作用 任何帮助将不胜感激 Thanks
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function

随机推荐

  • 如何建立个人网站(免费创建个人网站制作流程步骤)

    第一步 xff1a 购买域名 域名简称DN xff0c 与IP地址相对应 xff0c 我们平时经常使用到 xff0c 如baidu com xff0c google com等 加上www 就不是域名了 xff0c 咱们的前辈们不知道有多少人
  • 普通程序员如何逆袭,达到财富自由?

    这两天闲逛知乎 xff0c 发现了一个有趣的问题 xff1a 大部分人的回答大概率无非这两种模式 xff1a 1 去大厂 混到管理层或者高P xff0c 拿大量股权 xff0c 财务自由 这个模式还挺常见的 xff0c 基本上阿里P8能到年
  • Deepin Linux系统安装及显示器配置教程(可竖屏)

    https blog csdn net weixin 41019705 article details 102683002
  • mac删除应用残留用户及清除dns缓存

    xff01 如果发现活动监视器中存在应用残留创建的用户在使用cup xff0c 建议删除这个用户 xff0c 减少cup开销 介绍这个考虑两点 xff1a linux下常用的添加用户到组的方式 usermod a G 用户药附加到的组 用户
  • linux环境下如何卸载一路赚钱(yilu/mservice)

    一 删除定时任务 xff1a sudo crontab l u root 2 gt dev null grep v mservice sudo crontab u root 二 停止服务 对于ubuntu以及centos 7的用户 serv
  • 网络警察 (哈希表)

    题目描述 作为一名网络警察 xff0c 你的任务是监视电子邮件 xff0c 看其中是否有一些敏感的关键词 不过 xff0c 有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序 xff0c 以逃避检查 请编写一个程序 xff0c 发现这种调整过顺序
  • Windows系统USB转CDC串口驱动限制说明

    USB转串口芯片目前主流的几种USB类别有 xff1a 1 USB 厂商类 xff1b 2 USB CDC类 xff1b 3 USB HID类 xff1b 其中若使用USB CDC系统内置驱动时 xff0c 使用时会有诸多特殊性 xff0c
  • XShell 6连接linux,上传windows 文件到虚拟机,在Linux下安装Qt

    一 XShell 6通过SSH连接Liunx 1 下载XShell xff0c 并安装 xff1b 这里建议下载XShell破解版 2 查看windows的IP和LINUX的IP是否一样 1 xff09 虚拟机上点击 编辑 gt 虚拟网络编
  • Activity中onNewIntent()方法触发及注意事项

    Activity的onNewIntent 方法何时会被调用 前提 ActivityA已经启动过 处于当前应用的Activity堆栈中 当ActivityA的LaunchMode为SingleTop时 xff0c 如果ActivityA在栈顶
  • (原创)Android Studio解除SVN绑定

    配置了SVN的项目 xff0c 如果想要解除配置该如何做呢 xff1f 一般的处理方法 xff0c 是找到项目的地址 xff0c 把 SVN文件夹删除 但是这样还不够彻底 因为项目的文件名还是有svn配置后的颜色 xff0c 如下图 如何让
  • Ocelot网关使用IdentityServer4认证

    环境 xff1a window10 x64vs2022 企业版 17 0 0 NET 6 0IdentityServer4 AccessTokenValidation 3 0 1Ocelot 17 0 0 Ocelot是在 net core
  • 【记录】Ubuntu美化之Gnome桌面教程

    嘿嘿 xff0c 什么都不说了 xff0c 先上图 支持多个桌面同时运行 xff0c 界面简洁 图标美观 右下角的托盘也很可爱 第一步 xff1a 第一步当然是要安装gnome啦 GNOME已经包含在Ubuntu软件库中 您所要做的就是打开
  • python 中 机器学习算法 --决策树

    文章目录 思维脑图3 1 2 用pandas加载数据集3 1 3 清洗数据集现在计算这些的实际值主队和客队最后一场比赛赢了吗 xff1f 3 2 决策树3 2 1 决策树中的参数3 2 2 决策树的使用 3 3 体育赛事结果预测 3 4 随
  • 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 记得要选中要修改的一段英文
  • 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
  • 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的发生 评估一个版本是否适合当前开