我们到底需不需要 jQuery?

曾经,在那个 IE6 还是主流浏览器的时代,为了实现稍微复杂一点的功能,也需要很多代码。如果要做到兼容主流浏览器,更需大费周章。当 jQuery 出现后,使用 jQuery 实现同样的功能,我们只需写很少的代码,并且兼容主流浏览器。于是,大部分网站都会使用 jQuery。
时过境迁,我们到底需不需要 jQuery 呢?
认为不需要 jQuery 的理由如下:
IE7 及更低版本的浏览器的市场份额已经低到忽略的地步。而用 IE8 及更高版本的浏览器的原生 API 来实现 jQuery 提供的功能并不是很麻烦。比如:

/* 选取元素 */
// IE8+
document.querySelectorAll(选择器);

// jQuery
$(选择器);

/* Ajax */
// IE8+
var request = new XMLHttpRequest();
request.open(‘GET‘, ‘/my/url‘, true);

request.onreadystatechange = function() {
  if (this.readyState === 4) {
    if (this.status >= 200 && this.status < 400) {
      // Success!
      var resp = this.responseText;
    } else {
      // Error :(
    }
  }
};

request.send();
request = null;

// jQuery
$.ajax({
  type: ‘GET‘,
  url: ‘/my/url‘,
  success: function(resp) {

  },
  error: function() {

  }
});

/* 绑定事件 */
// IE8+
function addEventListener(el, eventName, handler) {
  if (el.addEventListener) {
    el.addEventListener(eventName, handler);
  } else {
    el.attachEvent(‘on‘ + eventName, function(){
      handler.call(el);
    });
  }
}

addEventListener(el, eventName, handler);

// jQuery
$(el).on(eventName, eventHandler);

用 jQuery 做页面的交互的做法是,当数据改变时,选择数据对应的 DOM,然后修改 DOM。如果 HTML 发生改变,如某元素的 id 改了, 而 jQuery 是通过 id 来找那元素的,那 jQuery 的代码也需要修改。而且,如果页面的数据与 DOM 的交互很复杂,用 jQuery 还满麻烦的。在这些情况下,用 MVVM 的框架是个不错的选择: MVVM 做页面的交互的做法是,在 HTML 中,设置好了 DOM 与数据的关系。当数据改变时,框架会更新 DOM。
认为需要 jQuery 的理由如下
jQuery 的有丰富的插件库。
不少现代的框架依赖 jQuery,如 Bootstrap 的 JS 插件,Ember,Meteor JS。如果要用那些框架,就不得不用 jQuery。
用 jQuery 比用原生的 API 好学,好用,强大,简洁, 还不需要考虑浏览器兼容性问题。
jQuery 的开发仍在继续中。并且与时俱进的增加了一些新特性。比如,jQuery 3 增加允许用 for... of 来遍历 jQuery 集合的 DOM 元素。如

var $inputs = $(‘input‘);
var i = 0;

for(var input of $inputs) {
   input.id = ‘input-‘ + i++;
}前端学习裙:685910553

  

那么,我们到底需不需要 jQuery 呢? 其实还是要根据具体项目来定。对我来说,对于一般的项目,我都会用 jQuery,毕竟 jQuery 大小不大,比如,jquery-3.0.0-beta1.min.js 在没 gzip 压缩前也就 86 KB。

原文地址:https://www.cnblogs.com/miuk/p/10885781.html

时间: 2024-11-07 14:25:16

我们到底需不需要 jQuery?的相关文章

软件编程:我们到底需不需要 jQuery

文章来源:http://www.zretc.com/technologyDetail/344.html 曾经,在那个 IE6 还是主流浏览器的时代,为了实现稍微复杂一点的功能,也需要很多代码.如果要做到兼容主流浏览器,更需大费周章.当 jQuery 出现后,使用 jQuery 实现同样的功能,我们只需写很少的代码,并且兼容主流浏览器.于是,大部分网站都会使用 jQuery. 时过境迁,我们到底需不需要 jQuery 呢? 认为不需要 jQuery 的理由如下: · IE7 及更低版本的浏览器的市

讨论:写程序到底需不需要懂数学?

数学系所学的数学,跟一般人所会用到的数学不太一样.研究所顺利考上的向往已久的资工所,成为名符其实的本科系学生,本以为可以不用再玩数学了,但我发现我错了,是不用再玩那些抽久的高等数学没错,但线性代数.机率统计.离散数学等...用了更多的数学,我想不出来有哪门资工研究所的课没用到数学的.写程序需要数学吗?  写程序到底需不需要懂数学? piggy | 08 Jun, 2007 17:26 数学对于程序设计师来说到底重不重要?!类似这样标题的讨论,在网络上已经不知道被讨论多少次了.前两天又在老同事小白

敏捷开发,到底需不需要 QA?

"敏捷开发,到底需不需要 QA?" 答案是--当然是需要的. 只是期望 QA 能从传统的专注在 "流程质量",转而与团队在一起,共同专注 "产品质量". 所谓专注 "流程质量" 指的是:只关注团队 "有没有" 搞持续集成.自动化测试.站立会议.选代演示.回顾会议,收集度量数据--等等. 所谓与团队在一起,专注 "产品质量" 指的是: 与团队在一起,从产品而非从流程的角度,只关注在团队 &

您的电脑到底需不需要装杀毒软件?

这段时间一直在修改nopcommerce的源码,用aspnetcore +mongodb来实现Nopcommerce.修改过程中找到的一些关于aspnetcore资料和心得,会放到www.freeboygirl.com网站,以备freeboygirl自己查用,以免遗忘,同时,也会把我认为有学习价值的一些文章,投递到微信公众号:AspNetCore,如果同行有兴趣,可以扫描网页底部二维码关注. 另外,国内关于asp net core的资料还很少,可以从一些Asp .Net Core 项目中学习,这

软件测试人员到底需不需要通过培训来提升技术能力

这二天在为要不要给小朋友报培训班而发愁,身边朋友大多都早早地为小朋友报了好几个培训班,大多都是美术兴趣班,英文班,珠心算,跳舞等. 王豆豆一直想给小朋友报,但却一直没报,基于二点:第一个是小朋友年龄还小,到底是应该去学还是去玩,第二个是现在这些培训班收费都不便宜啊,基于这些所以迟迟没报班. 大多父母都是舍得为孩子付出,就算是自己吃得差一点,穿得土一点都要给孩子报一个学费非常贵的兴趣班,为孩子花起钱来眼都眨一下,但经常又有“鸡汤”文说一定不要忘记爱自己,投资最好的人就是自己,那到底我们应该怎么做才

jQuery.Validate验证库

一.用前必备 官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassistance.de/api-browser/plugins.html 当前版本:1.5.5 需要JQuery版本:1.2.6+, 兼容 1.3.2 二.默认校验规则 (1)required:true 必输字段 (2)remote:"check.php" 使用ajax方法调用check.php

jQuery Validate (1)

一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassistance.de/api-browser/plugins.html 当前版本:1.5.5需要JQuery版本:1.2.6+, 兼容 1.3.2<script src="../js/jquery.js" type="text/javascript"></s

在中国网站建站到底要不要备案?有免备案的存在吗?

这是很多站长都有在考虑的问题,但是明确的说在国内建站是要备案的,这是我们中国特色,但是有种特殊的存在叫免备案,这种价钱比较高一般使用在灰色业务类型的客户. 好多朋友在建站的时候都会考虑一个问题,网站要备案吗?网站到底要不要备案呢?备案与不备案有什么好处呢?对于这些问题,我相信很多站长都纠结过.为了让更多明白明白网站要不要备案,下面,邵连虎就给大家讲下备案与不备案之间的区别. 网站需要备案吗? 网站备案是按空间来的,比如,国内的空间多数都是要备案的,毕竟国内的管制的比较严格.对于国外的空间就不要备

jQuery视差滚动插件,(附原理分析,调用方法)

演示地址:http://www.jq22.com/jquery-info1799 jquery插件,使用验证过可用. 分析源代码后总结原理:设置background样式为fixed,判断浏览器滚动距离,当在视窗范围内时,调用$(window).scroll.并根据所设置的速度比例,进行同步滚动. 调用时,设置三个必要参数:data-speed,data-type,background样式为fixed <div data-speed="4" data-type="back