jQuery vēsture un mantojums

jQuery vēsture un mantojums
jQuery ā€” Å”is ir vispopulārākais pasaulē JavaScript bibliotēka. TÄ«mekļa izstrādes kopiena to izveidoja 2000. gadu beigās, kā rezultātā tika izveidota bagātÄ«ga vietņu, spraudņu un ietvaru ekosistēma, izmantojot jQuery zem pārsega.

Taču pēdējos gados tā kā galvenā tÄ«mekļa izstrādes rÄ«ka statuss ir samazinājies. ApskatÄ«sim, kāpēc jQuery kļuva populārs un kāpēc tas izkrita no modes, un arÄ« kādos gadÄ«jumos to joprojām ir ieteicams izmantot modernu vietņu veidoÅ”anai.

ÄŖsa jQuery vēsture

Džons Resigs (Džons Resigs) izveidoja pirmo bibliotēkas versiju 2005. gadā un publicēts 2006. gadā-m, pasākumā ar nosaukumu BarCampNYC. Ieslēgts jQuery oficiālā vietne autors rakstīja:

jQuery ir Javascript bibliotēka, kuras pamatā ir devÄ«ze: Javascript kodÄ“Å”anai jābÅ«t jautrai. jQuery veic bieži sastopamus, atkārtotus uzdevumus, noņem visus nevajadzÄ«gos marķējumus un padara tos Ä«sus, elegantus un tÄ«rus.

jQuery ir divas galvenās priekÅ”rocÄ«bas. Pirmais ir ērts API manipulÄ“Å”anai ar tÄ«mekļa lapām. Jo Ä«paÅ”i tas nodroÅ”ina jaudÄ«gas metodes elementu atlasei. Varat ne tikai atlasÄ«t pēc ID vai klases, bet arÄ« jQuery ļauj rakstÄ«t sarežģītas izteiksmes, piemēram, lai atlasÄ«tu elementus, pamatojoties uz to attiecÄ«bām ar citiem elementiem:

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

Laika gaitā atlases mehānisms kļuva par atseviŔķu bibliotēku Šņukstēt.

Otra bibliotēkas priekÅ”rocÄ«ba bija tā, ka tā abstrahēja atŔķirÄ«bas starp pārlÅ«kprogrammām. Tajos gados bija grÅ«ti uzrakstÄ«t kodu, kas varētu droÅ”i darboties visās pārlÅ«kprogrammās.

Standartizācijas trÅ«kums nozÄ«mēja, ka izstrādātājiem bija jāņem vērā daudzas atŔķirÄ«bas starp pārlÅ«kprogrammām un malām. Paskaties uz Å”is agrÄ«nais jQuery pirmkods un meklējiet jQuery.browser. Å eit ir viens piemērs:

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

Pateicoties jQuery, izstrādātāji varētu pārcelt bažas par visām Ŕīm nepilnÄ«bām uz bibliotēkas izstrādes komandas pleciem.

Vēlāk jQuery atviegloja sarežģītāku tehnoloÄ£iju, piemēram, animāciju un Ajax, ievieÅ”anu. Bibliotēka faktiski ir kļuvusi par vietņu standarta atkarÄ«bu. Un Å”odien tas nodroÅ”ina milzÄ«gu interneta daļu. Uzņēmums W3Techs tam uzskata 74% vietņu mÅ«sdienās izmanto jQuery.

Arī jQuery izstrādes kontrole ir kļuvusi formalizētāka. 2011. gadā komanda izveidoja jQuery Board. Un 2012. gadā jQuery padome pārveidots par jQuery Foundation.

2015. gadā jQuery fonds apvienojās ar Dojo fondu, izveidot JS fondu, kas pēc tam apvienojās ar Node.js fondu 2019-m izveidot OpenJS fonds, kurā jQuery bija viens noizrāvienu projekti. Ā»

Mainīgi apstākļi

Tomēr pēdējos gados jQuery zaudēja savu popularitāti. GitHub noņēma bibliotēku no manas vietnes priekÅ”gala. Bootstrap v5 atbrÄ«voties no jQueryjo tas ir viņa"lielākā klienta atkarÄ«ba no parastā JavaScript"(paÅ”laik 30 KB izmērs, samazināts un iepakots). Vairākas tendences tÄ«mekļa izstrādē ir vājinājuÅ”as jQuery kā bÅ«tiska rÄ«ka pozÄ«cijas.

Pārlūkprogrammas

Vairāku iemeslu dēļ pārlÅ«kprogrammu atŔķirÄ«bas un ierobežojumi ir kļuvuÅ”i mazāk svarÄ«gi. Pirmkārt, standartizācija ir uzlabojusies. Lielākie pārlÅ«kprogrammu izstrādātāji (Apple, Google, Microsoft un Mozilla) strādā kopā, lai izstrādātu tÄ«mekļa standartiem ietvaros TÄ«mekļa hiperteksta lietojumprogrammu tehnoloÄ£iju darba grupa.
Lai gan pārlÅ«kprogrammas joprojām atŔķiras viena no otras vairākos svarÄ«gos veidos, pārdevējiem vismaz ir iespējas meklēt un izveidot kopēju datu bāzi, nevis pastāvÄ«gs karÅ” kopā. AttiecÄ«gi pārlÅ«kprogrammas API ir ieguvuÅ”as jaunas iespējas. Piemēram, Atnest API spēj aizstāt Ajax funkcijas no jQuery:

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

Metodes querySelector Šø querySelectorAll jQuery atlasÄ«tāju dublikāti:

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

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

Tagad varat manipulēt ar elementu klasēm, izmantojot klases saraksts:

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

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

Vietā Jums var nebÅ«t nepiecieÅ”ams jQuery Å eit ir vēl dažas situācijas, kurās jQuery kodu var aizstāt ar vietējo kodu. Daži izstrādātāji vienmēr pieturas pie jQuery, jo viņi vienkārÅ”i nezina par jaunajām API, taču, kad viņi to dara, viņi bibliotēku sāk lietot retāk.

Vietējo funkciju izmantoÅ”ana uzlabo lapas veiktspēju. Daudzi animācijas efekti no jQuery tagad jÅ«s varat Ä«stenot daudz efektÄ«vāk izmantojot CSS.

Otrs iemesls ir tas, ka pārlÅ«kprogrammas tiek atjauninātas daudz ātrāk nekā iepriekÅ”. Lielākā daļa no tiem izmanto "mūžzaļā" atjaunoÅ”anas stratēģija, izņemot Apple Safari. Tos var atjaunināt fonā bez lietotāja iesaistÄ«Å”anās, un tie nav saistÄ«ti ar OS atjauninājumiem.

Tas nozÄ«mē, ka jaunās pārlÅ«kprogrammas funkcijas un kļūdu labojumi tiek izplatÄ«ti daudz ātrāk, un izstrādātājiem nav jāgaida, lÄ«dz Vai es varu izmantot sasniegs pieņemamu lÄ«meni. Viņi var droÅ”i izmantot jaunas funkcijas un API, nelejupielādējot jQuery vai polifills.

TreÅ”ais iemesls ir tas, ka Internet Explorer tuvojas pilnÄ«gas neatbilstÄ«bas stāvoklim. IE jau sen ir bijis tÄ«mekļa izstrādes posts visā pasaulē. Tās kļūdas bija plaÅ”i izplatÄ«tas, un, tā kā IE dominēja 2000. gados un neizmantoja mūžzaļo atjaunināŔanas stratēģiju, vecākas versijas joprojām ir izplatÄ«tas.

2016. gadā Microsoft paātrināja IE ekspluatācijas pārtraukÅ”anu, pārstāj atbalstÄ«t desmitā un vecākas versijas, ierobežojot atbalstu lÄ«dz IE 11. Un arvien biežāk tÄ«mekļa izstrādātājiem ir iespēja ignorēt IE saderÄ«bu.

Pat jQuery pārtrauca atbalstÄ«t IE 8 un jaunākas versijas, sākot no 2.0. versija, publicēts 2013. gadā. Un, lai gan dažos gadÄ«jumos joprojām ir nepiecieÅ”ams IE atbalsts, piemēram, vecākām vietnēm, Ŕādas situācijas rodas arvien retāk.

Jauni ietvari

KopÅ” jQuery parādÄ«Å”anās ir izveidoti daudzi ietvari, tostarp mÅ«sdienu lÄ«deri Reaģēt, leņķa Šø Vue. Viņiem ir divas svarÄ«gas priekÅ”rocÄ«bas salÄ«dzinājumā ar jQuery.

Pirmkārt, tie atvieglo lietotāja interfeisa sadalÄ«Å”anu komponentos. Ietvari ir paredzēti, lai apstrādātu lapu renderÄ“Å”anu un atjaunināŔanu. Un jQuery parasti tiek izmantots tikai atjaunināŔanai, atstājot uzdevumu nodroÅ”ināt sākotnējo lapu serverim.

No otras puses, React, Angular un Vue komponenti ļauj cieÅ”i savienot HTML, kodu un pat CSS. Tāpat kā mēs sadalām koda bāzi daudzās autonomās funkcijās un klasēs, iespēja sadalÄ«t saskarni atkārtoti lietojamos komponentos atvieglo sarežģītu vietņu izveidi un uzturÄ“Å”anu.

Otra priekÅ”rocÄ«ba ir tā, ka jaunākie ietvari ievēro deklaratÄ«vu paradigmu, kurā izstrādātājs apraksta, kā saskarnei vajadzētu izskatÄ«ties, un atstāj ietvara ziņā veikt visas nepiecieÅ”amās izmaiņas, lai sasniegtu vēlamo. Å Ä« pieeja ir pretrunā obligātajai pieejai, kas raksturo jQuery kodu.

Programmā jQuery jÅ«s skaidri pierakstiet darbÄ«bas, lai veiktu izmaiņas. Un deklaratÄ«vā sistēmā jÅ«s sakāt: "Saskaņā ar Å”iem datiem saskarnei vajadzētu izskatÄ«ties Ŕādi." Tas var ievērojami atvieglot koda rakstÄ«Å”anu bez kļūdām.

Izstrādātāji ir pieņēmuÅ”i jaunas pieejas vietņu izstrādei, tāpēc jQuery popularitāte ir samazinājusies.

Kad lietot jQuery?

Tad, kad vajadzētu izmantot jQuery?

Ja projekta sarežģītÄ«ba palielinās, tad labāk sākt ar citu bibliotēku vai ietvaru, kas ļauj jēgpilni pārvaldÄ«t sarežģītÄ«bu. Piemēram, sadaliet saskarni komponentos. Izmantojot jQuery Ŕādās vietnēs, sākumā var izskatÄ«ties labi, taču tas ātri novedÄ«s pie spageti koda, kurā nezināt, kurÅ” fragments ietekmē kādu lapas daļu.

Esmu bijis Ŕādā situācijā, kad mēģinot veikt kādas izmaiņas, tas Ŕķiet grÅ«ts uzdevums. JÅ«s nevarat bÅ«t pārliecināts, ka neko nesalauzÄ«sit, jo jQuery atlasÄ«tāji ir atkarÄ«gi no servera Ä£enerētās HTML struktÅ«ras.

Skalas otrā galā ir vienkārÅ”as vietnes, kurām nepiecieÅ”ama tikai neliela interaktivitāte vai dinamisks saturs. ArÄ« Ŕādos gadÄ«jumos es nevēlētos izmantot jQuery, jo ar vietējām API varat paveikt daudz vairāk.

Pat ja vajadzēs ko jaudÄ«gāku, meklÄ“Å”u specializētu bibliotēku, piem. axios par Ajax vai Animate.css animācijām. Tas bÅ«s vienkārŔāk nekā ielādēt visu jQuery nelielai funkcionalitātei.

Es domāju, ka labākais jQuery izmantoÅ”anas pamatojums ir tas, ka tas nodroÅ”ina visaptveroÅ”u funkcionalitāti vietnes priekÅ”pusē. Tā vietā, lai apgÅ«tu dažādas vietējās API vai specializētās bibliotēkas, varat lasÄ«t tikai jQuery dokumentāciju un nekavējoties kļūt produktÄ«vam.

ImperatÄ«vā pieeja nav labi mērogojama, taču to ir vieglāk apgÅ«t nekā citu bibliotēku deklaratÄ«vo pieeju. Vietnei ar skaidri ierobežotām iespējām labāk izmantot jQuery un strādāt mierÄ«gi: bibliotēkai nav nepiecieÅ”ama sarežģīta montāža vai apkopoÅ”ana.

Turklāt jQuery ir labs, ja esat pārliecināts, ka jūsu vietne laika gaitā nekļūs sarežģīta, un ja jums nerūp vietējā funkcionalitāte, kas noteikti prasīs rakstīt vairāk koda nekā jQuery.

Varat arÄ« izmantot Å”o bibliotēku, ja nepiecieÅ”ams atbalstÄ«t vecākas IE versijas. Tad jQuery kalpos jums tāpat kā tajos laikos, kad IE bija vispopulārākā pārlÅ«kprogramma.

ApzināŔanu

jQuery tuvākajā laikā nepazudīs. Viņa aktīvi attīstās, un daudzi izstrādātāji izvēlas izmantot tā API, pat ja ir pieejamas vietējās metodes. Bibliotēka ir palīdzējusi veselai izstrādātāju paaudzei izveidot vietnes, kas darbojas jebkurā pārlūkprogrammā. Lai gan tas daudzējādā ziņā ir aizstāts ar jaunām bibliotēkām, ietvariem un paradigmām, jQuery ir bijusi ļoti pozitīva loma mūsdienu tīmekļa izveidē.

Ja vien jQuery funkcionalitāte bÅ«tiski nemainÄ«sies, iespējams, ka dažu nākamo gadu laikā bibliotēkas izmantoÅ”ana turpinās lēnām, bet nepārtraukti samazināties. Jaunas vietnes jau no paÅ”a sākuma parasti tiek veidotas, izmantojot modernākus ietvarus, un piemēroti jQuery lietoÅ”anas gadÄ«jumi kļūst arvien retāk.

Dažiem cilvēkiem nepatÄ«k tÄ«mekļa izstrādes rÄ«ku novecoÅ”anās ātrums, bet man tas liecina par strauju progresu. jQuery ir ļāvusi mums daudzas lietas paveikt labāk. Tas pats attiecas uz viņas pēctečiem.

Avots: www.habr.com

Pievieno komentāru