jQuery -
Бірақ соңғы жылдары оның веб-әзірлеудің басты құралы ретіндегі мәртебесі жойылды. Келіңіздер, jQuery неліктен танымал болды және неге ол сәнден шықты, сондай-ақ қандай жағдайларда оны заманауи веб-сайттарды жасау үшін әлі де қолданған жөн екенін қарастырайық.
jQuery-дің қысқаша тарихы
Джон Ресиг (
jQuery – Javascript кітапханасы ұранға негізделген: Javascript кодтау қызықты болуы керек. jQuery жалпы, қайталанатын тапсырмаларды қабылдайды, барлық қажетсіз белгілерді алып тастайды және оларды қысқа, талғампаз және таза етеді.
jQuery екі негізгі артықшылығы бар. Біріншісі - веб-беттерді өңдеуге арналған ыңғайлы API. Атап айтқанда, ол элементтерді таңдаудың күшті әдістерін ұсынады. Идентификатор немесе класс бойынша таңдауға ғана емес, 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 қоры Доджо қорымен біріктірілді.
Жағдайлардың өзгеруі
Дегенмен, соңғы жылдары 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 бізге көп нәрсені жақсырақ жасауға мүмкіндік берді. Оның мұрагерлеріне де солай.
Ақпарат көзі: www.habr.com