博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】jquery两稳定版本比较~~
阅读量:5906 次
发布时间:2019-06-19

本文共 3106 字,大约阅读时间需要 10 分钟。

 

博客分类:
  •  
 

       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代码  
  1. <script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js">  
  2. </script>  
  3. <script type="text/javascript">  
  4.   var $171 = jQuery.noConflict();  
  5. </script>  
  6. <script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js">  
  7. </script>  
  8. <script type="text/javascript">  
  9.   var $142 = jQuery.noConflict();  
  10. </script>  
  11.   
  12. <div class="wrapper">  
  13.   <div class="innerWrapper">  
  14.     <div class="button">  
  15.         <a href="" id="button" class="buttonRef">    
  16.            <span class="buttonText">Text</span>   
  17.        </a>  
  18.     </div>  
  19.   </div>  
  20. </div>  
  21.   
  22. <script>  
  23.   var context71 = $171("div.wrapper");  
  24.   var context42 = $142("div.wrapper");  
  25. </script>  

 

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

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

 

 

    其运行结果就不一一显示出来,感兴趣的童鞋们可以到具体查看各浏览器的性能比较。

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

    

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

 

2.稳定性分析

   

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

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

 

Html代码  
  1. Jquery 1.4.2  Posted February 19th, 2010 by John Resig  
  2. Jquery 1.4.3  Posted October 16th, 2010 by John Resig  
  3. Changelog :http://api.jquery.com/category/version/1.4.3/            
  4.   
  5.   
  6. Jquery 1.7.1 Posted November 3rd, 2011 by dmethvin  
  7. Jquery 1.7.2 Posted March 21st, 2012 by dmethvin  
  8. Changelog:http://blog.jquery.com/2012/03/21/jquery-1-7-2-released/  

 

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

 

3.功能上分析

  

Html代码  
  1. <strong>1.7.1新增的方法   
  2.      removeData([name|list]) (支持以数组为参数的批量操作)  
  3.   
  4. 属性:(新增)  
  5.         prop(name|pro|key,val|fn)  
  6.         removeProp(name)  
  7.       
  8. 选择器:(新增)  
  9.         focus1.6+  
  10.   
  11. 筛选:(重载了方法)  
  12.        is(expr|obj|ele|fn)1.6*  
  13.        closest(expr,[con]|obj|ele)1.6*  
  14.        nextUntil([exp|ele][,fil])1.6*  
  15.        parentsUntil([exp|ele][,fil])1.6*  
  16.        prevUntil([exp|ele][,fil])1.6*  
  17.       
  18. 事件:(新增)  
  19.        on(eve,[sel],[data],fn)1.7+  
  20.        off(eve,[sel],[fn])1.7+  
  21.        delegate(sel,[type],[data],fn)  
  22.        undelegate([sel,[type],fn])1.6*  
  23.   
  24. Deferred:  
  25.     新增了整个模块  
  26.   
  27. 工具:(重载了方法)  
  28.     $.map(arr|obj,callback)1.6*  
  29. </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 的版本是当前最好的选择。

转载于:https://www.cnblogs.com/280850911/p/3152747.html

你可能感兴趣的文章
Linux安装telnet
查看>>
sap scriptfom 多语言翻译
查看>>
黄聪:3分钟学会sessionStorage用法
查看>>
Entity Framework 全面教程详解(转)
查看>>
Windows上Python2.7安装Scrapy过程
查看>>
Chapter 3:Code Style in Django
查看>>
挖掘数据金矿 领军协同创新 曙光荣膺“2016大数据创新应用领袖企业”称号
查看>>
Fast通道获得Win10 Mobile Build 14977更新
查看>>
Firefox 跟踪保护技术将页面加载时间减少 44%
查看>>
java解析虾米音乐
查看>>
mysql 多行合并函数
查看>>
艾级计算机的发展与挑战
查看>>
RocketMQ事务消息实战
查看>>
手把手教你做出好看的文本输入框
查看>>
zabbix 3.2.7 (源码包)安装部署
查看>>
vsCode 快捷键、插件
查看>>
网络最大流问题算法小结 [转]
查看>>
iOS推送消息报错误“Domain=NSCocoaErrorDomain Code=3000”的可能问题
查看>>
kvm-1
查看>>
leetcode 64. Minimum Path Sum
查看>>