曾经,在那个 IE6 还是主流浏览器的时代,为了实现稍微复杂一点的功能,也需要很多代码。如果要做到兼容主流浏览器,更需大费周章。当 jQuery 出现后,使用 jQuery 实现同样的功能,我们只需写很少的代码,并且兼容主流浏览器。于是,大部分网站都会使用 jQuery。
时过境迁,我们到底需不需要 jQuery 呢?
认为不需要 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 的理由如下
for... of
来遍历 jQuery 集合的 DOM 元素。如var $inputs = $('input');
var i = 0;
for(var input of $inputs) {
input.id = 'input-' + i++;
}
那么,我们到底需不需要 jQuery 呢? 其实还是要根据具体项目来定。对我来说,对于一般的项目,我都会用 jQuery,毕竟 jQuery 大小不大,比如,jquery-3.0.0-beta1.min.js
在没 gzip 压缩前也就 86 KB。
本文遵守创作共享CC BY-NC-SA 4.0协议 网络平台如需转载必须与本人联系确认。