曾經(jīng),在那個 IE6 還是主流瀏覽器的時代,為了實現(xiàn)稍微復雜一點的功能,也需要很多代碼。如果要做到兼容主流瀏覽器,更需大費周章。當 jQuery 出現(xiàn)后,使用 jQuery 實現(xiàn)同樣的功能,我們只需寫很少的代碼,并且兼容主流瀏覽器。于是,大部分網(wǎng)站都會使用 jQuery。
時過境遷,我們到底需不需要 jQuery 呢?
認為不需要 jQuery 的理由如下:
- IE7 及更低版本的瀏覽器的市場份額已經(jīng)低到忽略的地步。而用 IE8 及更高版本的瀏覽器的原生 API 來實現(xiàn) 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 做頁面的交互的做法是,當數(shù)據(jù)改變時,選擇數(shù)據(jù)對應的 DOM,然后修改 DOM。如果 HTML 發(fā)生改變,如某元素的 id 改了, 而 jQuery 是通過 id 來找那元素的,那 jQuery 的代碼也需要修改。而且,如果頁面的數(shù)據(jù)與 DOM 的交互很復雜,用 jQuery 還滿麻煩的。在這些情況下,用 MVVM 的框架是個不錯的選擇: MVVM 做頁面的交互的做法是,在 HTML 中,設置好了 DOM 與數(shù)據(jù)的關系。當數(shù)據(jù)改變時,框架會更新 DOM。
認為需要 jQuery 的理由如下
- jQuery 的有豐富的插件庫。
- 不少現(xiàn)代的框架依賴 jQuery,如 Bootstrap 的 JS 插件,Ember,Meteor JS。如果要用那些框架,就不得不用 jQuery。
- 用 jQuery 比用原生的 API 好學,好用,強大,簡潔, 還不需要考慮瀏覽器兼容性問題。
- jQuery 的開發(fā)仍在繼續(xù)中。并且與時俱進的增加了一些新特性。比如,jQuery 3 增加允許用for... of來遍歷 jQuery 集合的 DOM 元素。如
var $inputs = $('input');
var i = 0;
for(var input of $inputs) {
input.id = 'input-' + i++;
}
那么,我們到底需不需要 jQuery 呢? 其實還是要根據(jù)具體項目來定。對我來說,對于一般的項目,我都會用 jQuery,畢竟 jQuery 大小不大,比如,jquery-3.0.0-beta1.min.js在沒 gzip 壓縮前也就 86 KB。
參考鏈接- YOU MIGHT NOT NEED JQUERY
- Why jQuery is still relevant
- Choosing Vanilla JavaScript in 2016
- jQuery 3 中的新變動
哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無需額外費用,即可穩(wěn)步提升排名至首頁。歡迎體驗最佳的哈爾濱網(wǎng)站建設。
