jQuery -
Але ў апошнія гады яе статут галоўнай прылады для вэба-распрацоўкі пахіснуўся. Давайце паглядзім, чаму jQuery стала папулярнай і чаму яна выйшла з моды, а таксама ў якіх выпадках яе пакуль яшчэ мэтазгодна выкарыстоўваць для стварэння сучасных сайтаў.
Кароткая гісторыя jQuery
Джон Рэзіг (
jQuery - гэта Javascript-бібліятэка, у аснове якой ляжыць дэвіз: Праграмаваць на Javascript павінна быць прыемна. jQuery бярэ частыя, якія паўтараюцца задачы, здабывае ўсю непатрэбную разметку і робіць іх кароткімі, элегантнымі і зразумелымі.
У jQuery дзве галоўныя добрыя якасці. Першае - гэта зручны API для маніпулявання вэб-старонкамі. У прыватнасці, ён дае магутныя метады для выбару элементаў. Выбіраць можна не толькі па ID ці класам, jQuery дазваляе пісаць складаныя выразы, напрыклад, каб выбіраць элементы на аснове іх узаемасувязяў з іншымі элементамі:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
З часам механізм выбару ператварыўся ў асобную бібліятэку.
Другой добрай якасцю бібліятэкі было тое, што яна абстрагавала адрозненні паміж браўзэрамі. У тыя гады было складана пісаць код, здольны надзейна працаваць ва ўсіх браўзэрах.
Адсутнасць стандартызацыі азначала, што распрацоўнікам трэба ўлічваць шматлікія адрозненні паміж браўзэрамі і памежныя выпадкі. Зірніце на
// If Mozilla is used
if ( jQuery.browser == "mozilla" || jQuery.browser == "opera" ) {
// Use the handy event callback
jQuery.event.add( document, "DOMContentLoaded", jQuery.ready );
// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
} else if ( jQuery.browser == "msie" ) {
// Only works if you document.write() it
document.write("<scr" + "ipt id=__ie_init defer=true " +
"src=javascript:void(0)></script>");
// Use the defer script hack
var script = document.getElementById("__ie_init");
script.onreadystatechange = function() {
if ( this.readyState == "complete" )
jQuery.ready();
};
// Clear from memory
script = null;
// If Safari is used
} else if ( jQuery.browser == "safari" ) {
// Continually check to see if the document.readyState is valid
jQuery.safariTimer = setInterval(function(){
// loaded and complete are both valid states
if ( document.readyState == "loaded" ||
document.readyState == "complete" ) {
// If either one are found, remove the timer
clearInterval( jQuery.safariTimer );
jQuery.safariTimer = null;
// and execute any waiting functions
jQuery.ready();
}
}, 10);
}
А дзякуючы jQuery распрацоўшчыкі маглі перакласці клопаты аб усіх гэтых падводных камянях на плечы каманды, якая развівае бібліятэку.
Пазней jQuery аблегчыла ўкараненне больш складаных тэхналогій, такіх як анімацыі і Ajax. Бібліятэка фактычна ператварылася ў стандартную для вэб-сайтаў залежнасць. І сёння яна забяспечвае працу вялізнай долі інтэрнэту. W3Techs лічыць, што
Кантроль за развіццём jQuery таксама стаў больш фармалізаваны. У 2011-м каманда
У 2015-м jQuery Foundation уліўся ў Dojo Foundation,
Якія змяняюцца абставіны
Аднак у апошнія гады jQuery
Браўзэры
Па шэрагу чыннікаў, адрозненні і абмежаванні браўзэраў сталі меней важныя. Па-першае, палепшылася стандартызацыя. Асноўныя распрацоўшчыкі браўзэраў (Apple, Google, Microsoft і Mozilla) сумесна распрацоўваюць
Хоць браўзэры яшчэ адрозніваюцца сябар ад сябра ў шэрагу важных момантаў, у вендараў хоць бы ёсць сродак для пошуку і стварэнні агульнай базы замест
// jQuery
$.getJSON('https://api.com/songs.json')
.done(function (songs) {
console.log(songs);
})
// native
fetch('https://api.com/songs.json')
.then(function (response) {
return response.json();
})
.then(function (songs) {
console.log(songs);
});
метады
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Маніпуляваць класамі элементаў зараз можна з дапамогай
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
На сайце
Выкарыстанне натыўных магчымасцей дазваляе павысіць прадукцыйнасць старонак. Многія
Другая прычына заключаецца ў тым, што браўзэры абнаўляюцца значна хутчэй, чым раней. У большасці з іх прымяняецца
Гэта азначае, што новыя магчымасці браўзэраў і выпраўленні багаў распаўсюджваюцца значна хутчэй, і распрацоўнікам не трэба чакаць, пакуль дзель
Трэці чыннік складаецца ў тым, што Internet Explorer набліжаецца да стану поўнай неактуальнасці. IE ўжо даўно з'яўляецца бізуном вэб-распрацоўкі ва ўсім свеце. Характэрныя для яго багі былі шырока распаўсюджаныя, а паколькі IE дамінаваў у 2000-х і не выкарыстоўваў «вечназялёную» стратэгію абнаўлення, да гэтага часу часта сустракаюцца яго старыя версіі.
У 2016-м Microsoft паскорыла выснову IE з эксплуатацыі,
Нават jQuery перастаў падтрымліваць IE 8 і ніжэй пачынаючы з
Новыя фрэймворкі
З моманту з'яўлення jQuery было створана мноства фрэймворкаў, у тым ліку сучасныя лідэры.
Па-першае, яны дазваляюць лёгка падзяляць карыстацкі інтэрфейс на кампаненты. Фрэймворкі спраектаваны так, каб апрацоўваць адмалёўку і абнаўленне старонкі. А jQuery звычайна выкарыстоўваецца толькі для абнаўлення, ускладаючы на сервер задачу падавання пачатковай старонкі.
З іншага боку, кампаненты React, Angular і Vue дазваляюць цесна звязаць HTML, код і нават CSS. Як мы падзяляем кодавую базу на шмат самадастатковых функцый і класаў, так і магчымасць падзяліць інтэрфейс на паўторна выкарыстоўваныя кампаненты спрашчае зборку і суправаджэнне складаных сайтаў.
Другой перавагай з'яўляецца тое, што больш свежыя фрэймворкі прытрымліваюцца дэкларатыўнай парадыгмы, у рамках якой распрацоўшчык апісвае, як павінен выглядаць інтэрфейс, а выкананне ўсіх неабходных змен для дасягнення жаданага ўскладае на фрэймворк. Гэты падыход супярэчыць імператыўнаму падыходу, характэрнаму для jQuery-кода.
У jQuery вы відавочна прапісваеце крокі для здзяйснення якіх-небудзь змен. А ў дэкларатыўным фрэймворку вы кажаце: «Згодна з гэтымі данымі, інтэрфейс павінен выглядаць так». Гэта можа моцна палегчыць напісанне кода без багаў.
Распрацоўнікі прынялі на ўзбраенне новыя падыходы да распрацоўкі сайтаў, з-за чаго папулярнасць jQuery панізілася.
Калі выкарыстоўваць jQuery?
Дык калі ж варта выкарыстоўваць jQuery?
Калі складанасць праекта будзе расці, то лепш пачаць з іншай бібліятэкай ці фрэймворкам, які дазваляе асэнсавана кіраваць складанасцю. Напрыклад, падзяляць інтэрфейс на кампаненты. Выкарыстанне jQuery у такіх сайтах на першую пару можа выглядаць прымальна, але гэта хутка прывядзе да ўзнікнення спагецці-кода, калі вы не будзеце ўпэўненыя ў тым, які фрагмент на якую частку старонкі ўплывае.
Я бываў у такой сітуацыі, пры спробе зрабіць любую змену ўзнікае адчуванне цяжкай задачы. Нельга быць упэўненым у тым, што нічога не зламаеш, таму што селектары jQuery залежаць ад структуры HTML, створанай серверам.
На іншым канцы шкалы знаходзяцца простыя сайты, якім патрабуецца толькі крыху інтэрактыўнасці або дынамічнага кантэнту. У такіх выпадках я таксама не стаў бы па змаўчанні выкарыстоўваць jQuery, бо з натыўнымі API можна зрабіць значна больш.
Нават калі мне спатрэбіцца нешта больш магутнае, я пашукаю спецыялізаваную бібліятэку, напрыклад,
Думаю, лепшым абгрунтаваннем выкарыстання jQuery будзе тое, што яна дае ўсёабдымную функцыянальнасць для працы франтэнда сайта. Замест таго каб вывучаць разнастайныя натыўныя API ці спецыялізаваныя бібліятэкі, вы можаце прачытаць толькі дакументацыю jQuery, і адразу станеце прадуктыўныя.
Імператыўны падыход дрэнна маштабуецца, але яго асвоіць прасцей, чым дэкларатыўны падыход іншых бібліятэк. Для сайта з відавочна абмежаванымі магчымасцямі лепш ужыць jQuery і спакойна працаваць: бібліятэка не патрабуе складанай зборкі ці кампіляцыі.
Акрамя таго, jQuery добрая ў тых выпадках, калі вы ўпэўненыя, што сайт не будзе з часам ускладняцца, і калі вас не хвалюе натыўная функцыянальнасць, якая, безумоўна, запатрабуе напісанні больш кода, чым jQuery.
Таксама вы можаце прымяняць гэтую бібліятэку, калі трэба падтрымліваць старыя версіі IE. Тады jQuery будзе служыць вам як у тыя часы, калі IE быў самым папулярным браўзэрам.
Погляд у будучыню
jQuery знікне яшчэ не хутка. Яна
Калі функцыянальнасць jQuery істотна не зменіцца, цалкам верагодна, што ў найблізкія некалькі гадоў выкарыстанне бібліятэкі будзе працягваць павольна, але няўхільна змяншацца. Новыя вэб-сайты, як правіла, з самага пачатку ствараюцца з выкарыстаннем больш сучасных фрэймворкаў, і прыдатныя сцэнары выкарыстання jQuery узнікаюць усё радзей.
Камусьці не падабаецца інтэнсіўнасць састарэння інструментаў для вэба-распрацоўкі, але для мяне гэта сведчанне хуткага прагрэсу. jQuery дазволіла нам шмат рабіць лепш. Тое ж самае дакладна і для яе пераемнікаў.
Крыніца: habr.com