jQuery тарихы және мұрасы

jQuery тарихы және мұрасы
jQuery - бұл ең танымал әлемде JavaScript кітапханасы. Веб-әзірлеу қауымдастығы оны 2000-шы жылдардың соңында жасады, нәтижесінде jQuery көмегімен сайттардың, плагиндердің және фреймворктардың бай экожүйесі пайда болды.

Бірақ соңғы жылдары оның веб-әзірлеудің басты құралы ретіндегі мәртебесі жойылды. Келіңіздер, jQuery неліктен танымал болды және неге ол сәнден шықты, сондай-ақ қандай жағдайларда оны заманауи веб-сайттарды жасау үшін әлі де қолданған жөн екенін қарастырайық.

jQuery-дің қысқаша тарихы

Джон Ресиг (Джон Ресиг) кітапхананың бірінші нұсқасын 2005 жылы құрды және 2006 жылы жарияланған-m, BarCampNYC деп аталатын шарада. Қосулы jQuery ресми сайты автор былай деп жазды:

jQuery – Javascript кітапханасы ұранға негізделген: Javascript кодтау қызықты болуы керек. jQuery жалпы, қайталанатын тапсырмаларды қабылдайды, барлық қажетсіз белгілерді алып тастайды және оларды қысқа, талғампаз және таза етеді.

jQuery екі негізгі артықшылығы бар. Біріншісі - веб-беттерді өңдеуге арналған ыңғайлы API. Атап айтқанда, ол элементтерді таңдаудың күшті әдістерін ұсынады. Идентификатор немесе класс бойынша таңдауға ғана емес, jQuery күрделі өрнектерді жазуға мүмкіндік береді, мысалы, элементтерді олардың басқа элементтермен қарым-қатынасына қарай таңдауға мүмкіндік береді:

// Select every item within the list of people within the contacts element
$('#contacts ul.people li');

Уақыт өте келе таңдау механизмі жеке кітапханаға айналды Сізге.

Кітапхананың екінші артықшылығы оның браузерлер арасындағы айырмашылықтарды абстракциялауында болды. Сол жылдары барлық браузерлерде сенімді жұмыс істей алатын код жазу қиын болды.

Стандарттаудың болмауы әзірлеушілер браузерлер мен шеткі жағдайлар арасындағы көптеген айырмашылықтарды есепке алуы керек дегенді білдірді. Қарап көріңіз бұл ерте jQuery бастапқы коды және jQuery.browser іздеңіз. Міне, бір мысал:

// 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 бұған сенеді Бүгінгі таңда сайттардың 74% jQuery пайдаланады.

jQuery әзірлеуін бақылау да ресмиленді. 2011 жылы команда jQuery тақтасын жасады. Ал 2012 жылы jQuery Board jQuery Foundation түрлендірілді.

2015 жылы jQuery қоры Доджо қорымен біріктірілді. JS Foundation құру, содан кейін ол Node.js қорымен біріктірілді 2019-м құру OpenJS қоры, оның ішінде jQuery бірі болдысерпінді жобалар. «

Жағдайлардың өзгеруі

Дегенмен, соңғы жылдары jQuery танымалдылығын жоғалтты. GitHub кітапхананы сайтымның алдыңғы бөлігінен алып тастады. Bootstrap v5 jQuery-ден құтылыңызөйткені бұл оның"тұрақты JavaScript үшін ең үлкен клиенттік тәуелділік"(қазір өлшемі 30 КБ, кішірейтілген және оралған). Веб-әзірлеудегі бірнеше үрдістер jQuery-дің маңызды құрал ретіндегі позициясын әлсіретіп жіберді.

Браузерлер

Бірқатар себептерге байланысты браузердегі айырмашылықтар мен шектеулер маңыздырақ болды. Біріншіден, стандарттау жақсарды. Негізгі браузер әзірлеушілері (Apple, Google, Microsoft және Mozilla) әзірлеу үшін бірге жұмыс істейді веб-стандарттар ішінде Веб гипермәтіндік қолданбалы технологияның жұмыс тобы.
Браузерлер әлі де бірнеше маңызды тәсілдермен бір-бірінен ерекшеленсе де, жеткізушілерде кем дегенде жалпы дерекқорды іздеуге және құруға арналған құралдар бар. тұрақты соғыс бір бірімен. Тиісінше, браузердің API интерфейстері жаңа мүмкіндіктерге ие болды. Мысалыға, API алу jQuery ішінен Ajax функцияларын ауыстыруға қабілетті:

// 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);
    });

Әдістері querySelector и querySelectorAll қайталанатын jQuery таңдаушылары:

// jQuery
const fooDivs = $('.foo div');

// native
const fooDivs = document.querySelectorAll('.foo div');

Енді элемент сыныптарын пайдаланып басқара аласыз сыныптар тізімі:

// jQuery
$('#warning').toggleClass('visible');

// native
document.querySelector('#warning').classList.toggle('visible');

Сайтта Сізге jQuery қажет болмауы мүмкін Мұнда jQuery кодын жергілікті кодпен ауыстыруға болатын тағы бірнеше жағдай берілген. Кейбір әзірлеушілер әрқашан jQuery-ді ұстанады, өйткені олар жаңа API интерфейстері туралы білмейді, бірақ білгенде олар кітапхананы сирек пайдалана бастайды.

Жергілікті мүмкіндіктерді пайдалану бет өнімділігін жақсартады. Көптеген jQuery-ден анимациялық әсерлер енді жүзеге асыруға болады әлдеқайда тиімді CSS көмегімен.

Екінші себеп - браузерлер бұрынғыдан әлдеқайда жылдам жаңартылады. Олардың көпшілігі пайдаланады «Мәңгілік жасыл» жаңару стратегиясы, Apple Safari қоспағанда. Оларды пайдаланушының қатысуынсыз фондық режимде жаңартуға болады және ОЖ жаңартуларына байланысты емес.

Бұл браузердің жаңа мүмкіндіктері мен қателерді түзету әлдеқайда жылдамырақ таратылатынын және әзірлеушілерге Мүмкін бе? қолайлы деңгейге жетеді. Олар jQuery немесе polyfills қолданбай жаңа мүмкіндіктер мен API интерфейстерін сенімді пайдалана алады.

Үшінші себеп - Internet Explorer толық қажетсіз күйге жақындады. IE ұзақ уақыт бойы бүкіл әлем бойынша веб-әзірлеудің қасіретін болды. Оның қателері кең таралған және IE 2000-шы жылдары үстемдік еткендіктен және мәңгі жасыл жаңарту стратегиясын қолданбағандықтан, ескі нұсқалар әлі де жиі кездеседі.

2016 жылы Microsoft IE пайдаланудан шығаруды жылдамдатты, қолдау көрсетуді тоқтатады оныншы және бұрынғы нұсқалар IE 11 қолдауын шектейді. Және веб-әзірлеушілер IE үйлесімділігін елемеу салтанатына ие.

Тіпті jQuery бастап IE 8 және одан төмен қолдау көрсетуді тоқтатты 2.0 нұсқасы, 2013 жылы жарияланған. Кейбір жағдайларда IE қолдауы әлі де қажет болса да, мысалы, ескі сайттарда, бұл жағдайлар азырақ және сирек кездеседі.

Жаңа фреймворктар

jQuery пайда болғаннан бері көптеген фреймворктар, соның ішінде заманауи көшбасшылар жасалды жауап, бұрыштық и Vue. Олардың jQuery-ге қарағанда екі маңызды артықшылығы бар.

Біріншіден, олар пайдаланушы интерфейсін құрамдас бөліктерге бөлуді жеңілдетеді. Фреймворктар бетті көрсету және жаңартуды өңдеуге арналған. Ал jQuery әдетте серверге бастапқы бетті беру міндетін қалдырып, жаңарту үшін ғана пайдаланылады.

Екінші жағынан, React, Angular және Vue компоненттері HTML, код және тіпті CSS-ті тығыз байланыстыруға мүмкіндік береді. Кодтық базаны көптеген дербес функциялар мен сыныптарға бөлетініміз сияқты, интерфейсті қайта пайдалануға болатын құрамдастарға бөлу мүмкіндігі күрделі тораптарды құру мен қолдауды жеңілдетеді.

Екінші артықшылығы - жаңадан жасалған фреймворктар декларативті парадигманы ұстанады, онда әзірлеуші ​​интерфейстің қандай болуы керектігін сипаттайды және оны қалаған нәрсеге қол жеткізу үшін барлық қажетті өзгерістерді енгізу үшін негізге қалдырады. Бұл тәсіл jQuery кодын сипаттайтын императивті тәсілге қайшы келеді.

jQuery-де сіз кез келген өзгертулерді енгізу қадамдарын нақты жазасыз. Декларативті жүйеде сіз: «Осы деректерге сәйкес интерфейс келесідей болуы керек» дейсіз. Бұл қатесіз код жазуды айтарлықтай жеңілдетеді.

Әзірлеушілер веб-сайтты әзірлеудің жаңа тәсілдерін қабылдады, сондықтан jQuery танымалдылығы төмендеді.

jQuery-ді қашан пайдалану керек?

Енді қашан болуы тиіс jQuery пайдалану керек пе?

Егер жобаның күрделілігі арта түссе, онда күрделілікті мағыналы басқаруға мүмкіндік беретін басқа кітапханадан немесе шеңберден бастаған дұрыс. Мысалы, интерфейсті компоненттерге бөліңіз. Мұндай сайттарда jQuery пайдалану бастапқыда жақсы көрінуі мүмкін, бірақ ол тез арада спагетти кодына әкеледі, онда қай фрагмент беттің қай бөлігіне әсер ететінін білмейсіз.

Мен осындай жағдайға тап болдым, кез келген өзгеріс енгізуге тырысқанда, бұл қиын жұмыс сияқты сезінеді. Сіз ештеңені бұзбайтыныңызға сенімді бола алмайсыз, себебі jQuery селекторлары сервер жасаған HTML құрылымына байланысты.

Шкаланың екінші жағында аз ғана интерактивті немесе динамикалық мазмұнды қажет ететін қарапайым сайттар бар. Мен бұл жағдайларда да jQuery-ге әдепкі емес едім, себебі жергілікті API интерфейстерімен көп нәрсені жасай аласыз.

Маған күштірек нәрсе керек болса да, мен арнайы кітапхананы іздеймін, мысалы. аксио Ajax үшін немесе Animate.css анимациялар үшін. Бұл шағын функционалдылық үшін барлық jQuery жүктеуден оңайырақ болады.

Менің ойымша, jQuery-ді пайдаланудың ең жақсы негіздемесі - бұл веб-сайттың алдыңғы бөлігі үшін жан-жақты функционалдылықты қамтамасыз етеді. Әртүрлі жергілікті API интерфейстерін немесе арнайы кітапханаларды үйренудің орнына сіз jQuery құжаттамасын оқып, бірден өнімді бола аласыз.

Императивті тәсіл жақсы масштабталмайды, бірақ басқа кітапханалардың декларативті тәсіліне қарағанда үйрену оңайырақ. Мүмкіндіктері анық шектеулі сайт үшін jQuery-ді қолданып, тыныш жұмыс істеген дұрыс: кітапхана күрделі құрастыруды немесе компиляцияны қажет етпейді.

Оған қоса, jQuery сайтыңыз уақыт өте келе күрделіленбейтініне сенімді болсаңыз және жергілікті функционалдылыққа мән бермесеңіз жақсы, бұл jQuery-ге қарағанда көбірек код жазуды қажет етеді.

Сондай-ақ, IE ескі нұсқаларын қолдау қажет болса, бұл кітапхананы пайдалануға болады. Сонда jQuery сізге IE ең танымал браузер болған кездегідей қызмет етеді.

Болашаққа көзқарас

jQuery жақын арада жоғалып кетпейді. Ол белсенді дамып келеді, және көптеген әзірлеушілер жергілікті әдістер қол жетімді болса да, оның API пайдалануын қалайды. Кітапхана әзірлеушілердің бүкіл ұрпағына кез келген браузерде жұмыс істейтін веб-сайттарды жасауға көмектесті. Ол көптеген жолдармен жаңа кітапханалармен, фреймворктермен және парадигмалармен ауыстырылғанымен, jQuery заманауи вебті құруда үлкен оң рөл атқарды.

Егер jQuery функционалдығы айтарлықтай өзгермесе, кітапхананы пайдалану алдағы бірнеше жылда баяу, бірақ тұрақты түрде төмендей беруі мүмкін. Жаңа веб-сайттар басынан бастап заманауи құрылымдарды пайдалана отырып жасалады және jQuery үшін қолайлы пайдалану жағдайлары барған сайын сирек болып барады.

Кейбір адамдар веб-әзірлеу құралдарының ескіру жылдамдығын ұнатпайды, бірақ мен үшін бұл жылдам прогресстің дәлелі. jQuery бізге көп нәрсені жақсырақ жасауға мүмкіндік берді. Оның мұрагерлеріне де солай.

Ақпарат көзі: www.habr.com

пікір қалдыру