јКуери историја и наслеђе

јКуери историја и наслеђе
јКуери - ово је најпопуларније у свету ЈаваСцрипт библиотека. Заједница за веб развој створила га је касних 2000-их, што је резултирало богатим екосистемом сајтова, додатака и оквира који користе јКуери испод хаубе.

Али последњих година, његов статус главног алата за веб развој је нарушен. Хајде да погледамо зашто је јКуери постао популаран и зашто је изашао из моде, као и у којим случајевима је и даље препоручљиво користити га за креирање модерних веб страница.

Кратка историја јКуери-ја

Џон Резиг (Јохн Ресиг) направио прву верзију библиотеке 2005. године, и објављено 2006. године-м, на догађају под називом БарЦампНИЦ. на јКуери званична веб локација аутор је написао:

јКуери је Јавасцрипт библиотека заснована на моту: Јавасцрипт треба да буде забаван за кодирање. јКуери преузима уобичајене задатке који се понављају, уклања све непотребне ознаке и чини их кратким, елегантним и чистим.

јКуери има две главне предности. Први је згодан АПИ за манипулисање веб страницама. Конкретно, пружа моћне методе за одабир елемената. Не само да можете да изаберете према ИД-у или класи, јКуери вам омогућава да пишете сложене изразе, на пример, да изаберете елементе на основу њихових односа са другим елементима:

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

А захваљујући јКуери-ју, програмери би могли да пребаце бриге о свим овим замкама на рамена тима који развија библиотеку.

Касније је јКуери олакшао имплементацију сложенијих технологија као што су анимације и Ајак. Библиотека је заправо постала стандардна зависност за веб странице. А данас покреће огроман део Интернета. В3Тецхс верује у то 74% сајтова данас користи јКуери.

Контрола над јКуери развојем је такође постала формализованија. Тим 2011 креирао јКуери таблу. И 2012. јКуери Боард трансформисан у јКуери фондацију.

У 2015, јКуери фондација се спојила са Дојо фондацијом, да створи ЈС фондацију, који се затим спојио са Ноде.јс фондацијом у 2019-м створити ОпенЈС фондација, у оквиру које је јКуери био један од „продорни пројекти».

Промена околности

Међутим, последњих година јКуери изгубио своју популарност. ГитХуб уклонио библиотеку са предњег дела мог сајта. Боотстрап в5 ослободите се јКуери-јајер је његов "највећа зависност од клијента за обичан ЈаваСцрипт„(тренутно величине 30 КБ, минимизирано и упаковано). Неколико трендова у развоју веба ослабили су позицију јКуери-ја као основног алата.

Прегледачи

Из више разлога, разлике и ограничења претраживача су постале мање важне. Прво, стандардизација је побољшана. Главни програмери претраживача (Аппле, Гоогле, Мицрософт и Мозилла) раде заједно на развоју веб стандарди у оквиру Радна група за технологију апликација за веб хипертекст.
Иако се претраживачи и даље разликују једни од других на неколико важних начина, продавци барем имају средства за претрагу и креирање заједничке базе података уместо перманентни рат заједно. Сходно томе, АПИ-ји претраживача су добили нове могућности. На пример, Фетцх АПИ способан да замени Ајак функције из јКуери-ја:

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

Сајт Можда вам неће требати јКуери Наведено је још неколико ситуација у којима јКуери код може бити замењен изворним кодом. Неки програмери се увек држе јКуери-ја јер једноставно не знају за нове АПИ-је, али када знају, почињу да користе библиотеку ређе.

Коришћење изворних функција побољшава перформансе странице. Многи ефекти анимације из јКуери-ја сада можете имплементирати много ефикасније користећи ЦСС.

Други разлог је тај што се претраживачи ажурирају много брже него раније. Већина њих користи „евергреен“ стратегија обнове, са изузетком Аппле Сафарија. Могу се ажурирати у позадини без учешћа корисника и нису везани за ажурирања ОС-а.

То значи да се нове функције претраживача и исправке грешака дистрибуирају много брже, а програмери не морају да чекају док се Могу ли да користим ће достићи прихватљив ниво. Они могу поуздано да користе нове функције и АПИ-је без преузимања јКуери-ја или полифила.

Трећи разлог је што се Интернет Екплорер приближава стању потпуне ирелевантности. ИЕ је дуго био пропаст веб развоја широм света. Његове грешке су биле широко распрострањене, а пошто је ИЕ доминирао 2000-им и није користио зимзелену стратегију ажурирања, старије верзије су и даље уобичајене.

У 2016, Мицрософт је убрзао укидање ИЕ, престанак да подржава десета и раније верзије, ограничавајући подршку на ИЕ 11. И све више, веб програмери имају луксуз да игноришу ИЕ компатибилност.

Чак је и јКуери престао да подржава ИЕ 8 и старије верзије верзија 2.0, објављен 2013. године. И иако је у неким случајевима подршка за ИЕ и даље потребна, на пример, на старијим сајтовима, ове ситуације се јављају све ређе.

Нови оквири

Од појаве јКуери-ја створени су многи оквири, укључујући модерне лидере Реаговати, Ангулар и Вуе. Имају две важне предности у односу на јКуери.

Прво, олакшавају раздвајање корисничког интерфејса на компоненте. Оквири су дизајнирани да управљају приказивањем и ажурирањем страница. А јКуери се обично користи само за ажурирање, остављајући задатак пружања почетне странице серверу.

С друге стране, компоненте Реацт, Ангулар и Вуе вам омогућавају да чврсто повежете ХТМЛ, код, па чак и ЦСС. Баш као што делимо базу кода на многе самосталне функције и класе, могућност поделе интерфејса на компоненте за вишекратну употребу олакшава прављење и одржавање сложених сајтова.

Друга предност је у томе што се новији оквири придржавају декларативне парадигме, у којој програмер описује како би интерфејс требало да изгледа и препушта оквиру да изврши све неопходне промене како би постигао оно што се жели. Овај приступ је у супротности са императивним приступом који карактерише јКуери код.

У јКуери-ју експлицитно записујете кораке за уношење промена. А у декларативном оквиру кажете: „Према овим подацима, интерфејс би требало да изгледа овако. Ово може знатно олакшати писање кода без грешака.

Програмери су усвојили нове приступе развоју веб локација, због чега је популарност јКуери-ја опала.

Када користити јКуери?

Па кад треба користити јКуери?

Ако се комплексност пројекта повећава, онда је боље почети са другом библиотеком или оквиром који вам омогућава да смислено управљате сложеношћу. На пример, поделите интерфејс на компоненте. Коришћење јКуери-ја на таквим сајтовима у почетку може изгледати добро, али ће брзо довести до шпагети кода где нисте сигурни који фрагмент утиче на који део странице.

Био сам у таквој ситуацији, када покушавам да направим било какву промену, осећам се као тежак задатак. Не можете бити сигурни да нећете ништа покварити јер јКуери селектори зависе од ХТМЛ структуре коју генерише сервер.

На другом крају скале су једноставне локације које захтевају само мало интерактивности или динамичког садржаја. Ни у овим случајевима не бих подразумевано користио јКуери, јер постоји много више што можете да урадите са изворним АПИ-јима.

Чак и ако ми треба нешто моћније, потражићу специјализовану библиотеку, нпр. акиос за Ајакс или Анимате.цсс за анимације. Ово ће бити лакше него учитавање целог јКуери-ја за малу функционалност.

Мислим да је најбољи разлог за коришћење јКуери-ја то што он пружа свеобухватну функционалност за предњи крај веб локације. Уместо да учите различите изворне АПИ-је или специјализоване библиотеке, можете читати само јКуери документацију и одмах постати продуктивни.

Императивни приступ није добар, али га је лакше научити него декларативни приступ других библиотека. За сајт са јасно ограниченим могућностима, боље је користити јКуери и радити мирно: библиотека не захтева сложено склапање или компилацију.

Поред тога, јКуери је добар ако сте уверени да ваша веб локација неће постати компликована током времена, и ако вам није стало до изворне функционалности, што ће свакако захтевати писање више кода него јКуери.

Ову библиотеку можете користити и ако треба да подржите старије верзије ИЕ-а. Тада ће вам јКуери служити као у данима када је ИЕ био најпопуларнији претраживач.

Гледајући у будућност

јКуери неће ускоро нестати. Она активно се развија, и многи програмери радије користе његов АПИ, чак и ако су изворне методе доступне. Библиотека је помогла читавој генерацији програмера да направи веб странице које раде на било ком претраживачу. Иако је на много начина замењен новим библиотекама, оквирима и парадигмама, јКуери је одиграо изузетно позитивну улогу у стварању модерног веба.

Осим ако се функционалност јКуери-ја значајно не промени, вероватно је да ће употреба библиотеке наставити полако али постојано да опада у наредних неколико година. Нове веб-странице се обично праве користећи модерније оквире од самог почетка, а одговарајући случајеви коришћења јКуери-ја постају све ређи.

Некима се не свиђа брзина којом алати за веб развој застаревају, али за мене је то доказ брзог напретка. јКуери нам је омогућио да урадимо много ствари боље. Исто важи и за њене наследнике.

Извор: ввв.хабр.цом

Додај коментар