jQuery vēsture un mantojums

jQuery vēsture un mantojums
jQuery — tā ir vispopulārākā pasaule JavaScript bibliotēka. Tās izstrādātāju kopiena radīja to 2000. gadu beigās, kas noveda pie bagātas vietņu, spraudņu un ietvaru ekosistēmas, kas izmanto jQuery savā pamatā.

Bet pēdējos gados tās statuss kā galvenajam rīkam web izstrādē ir vājinājies. Apskatīsim, kāpēc jQuery kļuva populāra un kāpēc tā izkļuva no modes, un arī tādos gadījumos, kad joprojām var būt lietderīgi to izmantot modernu vietņu izveidē.

Īsa jQuery vēsture

Džons Rezigs (John Resig) izveidoja pirmo bibliotēkas versiju 2005. gadā un publicēja 2006.-ajā pasākumā, kas saucās BarCampNYC. Uz oficiālās jQuery tīmekļa vietnes autors uzrakstīja:

jQuery — tā ir Javascript bibliotēka, kuras pamatā ir devīze: Programmēšana ar Javascript ir jāpadara patīkama. jQuery ir izņēmusi bieži sastopamos, atkārtojošos uzdevumus, izņemot visu nevajadzīgo marķējumu un padarot tos īsus, eleganti un saprotamus.

jQuery ir divas galvenās priekšrocības. Pirmā — tā ir ērta API, lai manipulētu ar tīmekļa lapām. Proti, tā piedāvā jaudīgas metodes elementu atlasei. Var izvēlēties ne tikai pēc ID vai klasēm, jQuery ļauj rakstīt sarežģītas izteiksmes, piemēram, lai izvēlētos elementus, pamatojoties uz to savstarpējām 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 Sizzle.

Otrā bibliotēkas priekšrocība bija tā, ka tā abstrahēja atšķirības starp pārlūkprogrammām. Tajos gados bija grūti rakstī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 robežas gadījumi. Apskatiet šo agrīno jQuery avota kodu un meklējiet jQuery.browser. Šis ir viens no piemēriem:

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

Un, pateicoties jQuery, izstrādātāji varēja novirzīt rūpes par visiem šiem zemūdens akmeņiem uz bibliotēkas attīstības komandu.

Vēlāk jQuery atviegloja sarežģītu tehnoloģiju, piemēram, animāciju un Ajax, ieviešanu. Bibliotēka faktiski kļuva par standarta atkarību tīmekļa vietnēm. Un šodien tā nodrošina daudzu interneta daļu darbību. W3Techs uzskata, ka 74 % vietņu šodien izmanto jQuery.

Uzraudzība par jQuery attīstību arī kļuva formālāka. 2011. gadā komanda izveidoja jQuery Board. Un 2012. gadā jQuery Board pārveidojās par jQuery Foundation.

2015. gadā jQuery Foundation pievienojās Dojo Foundation, lai izveidotu JS Foundation, kas vēlāk apvienojās ar Node.js Foundation 2019− gadā, lai izveidotu OpenJS Foundation, kurā jQuery bija viens no «pārsteidzošajiem projektiem.»

Mainīgās apkārtības

Tomēr pēdējos gados jQuery ir zaudējusi savu popularitāti. GitHub noņēma bibliotēku no sava priekšgala. Bootstrap v5 atsakās no jQuery, jo tas ir viņa «lielākā klientu atkarība parastajam JavaScript» (šobrīd tās izmērs ir 30 Kb, minimizēts un iesaiņots). Dažas tendences tīmekļa izstrādē ir vājinājušas jQuery pozīciju kā nepieciešamu rīku.

Pārlūkprogrammas

Kāds iemesls ir tas, ka starpību un ierobežojumu nozīmība starp pārlūkprogrammām ir kļuvusi mazāk svarīga. Pirmkārt, ir uzlabojusies standartizācija. Galvenie pārlūkprogrammu izstrādātāji (Apple, Google, Microsoft un Mozilla) kopīgi izstrādā tīmekļa standartus saskaņā ar Web Hypertext Application Technology Working Group.
Lai gan pārlūkprogrammas joprojām atšķiras citās svarīgās jomās, piegādātājiem vismaz ir līdzekļi, lai atrastu un izveidotu kopēju bāzi, nevis pastāvīgu karu starp viņiem. Attiecīgi pārlūkprogrammu API ir ieguvuši jaunas iespējas. Piemēram, Fetch API var aizstāt jQuery Ajax funkcijas:

// 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 un querySelectorAll duplē jQuery izvēles līdzekļus:

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

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

Elementu klašu manipulācija tagad ir iespējama, izmantojot classList:

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

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

Mājas lapā Jums varētu nevajadzēt jQuery ir uzskaitītas vēl dažas situācijas, kurās jQuery kodu var aizstāt ar nativu kodu. Daži izstrādātāji vienmēr paliek pie jQuery, jo vienkārši nezina par jaunajiem API, bet, kad uzzina, sāk to izmantot retāk.

Nativu iespēju izmantošana ļauj palielināt lapu veiktspēju. Daudzus jQuery animācijas efektus tagad var ieviest krietni efektīvāk izmantojot CSS.

Otrs iemesls ir tas, ka pārlūkprogrammas tiek atjauninātas daudz ātrāk nekā agrāk. Lielākajā daļā no tām tiek piemērota «mūžzaļā» atjaunināšanas stratēģija, izņemot Apple Safari. Tās var tikt atjauninātas fona režīmā bez lietotāja iesaistes un nav saistītas ar operētājsistēmas atjauninājumiem.

Tas nozīmē, ka jaunas pārlūkprogrammu iespējas un kļūdu labojumi tiek izplatīti daudz ātrāk, un izstrādātājiem nav jāpārgaida, kamēr daļa Can I Use sasniegs pieņemamu līmeni. Tie var droši izmantot jaunas funkcijas un API bez jQuery vai polifiliem.

Trešā iemesls ir tas, ka Internet Explorer tuvojas pilnīgas novecošanas stāvoklim. IE jau sen ir kļuvis par lāstu tīmekļa izstrādei visā pasaulē. Tam raksturīgi kļūdas ir bijušas plaši izplatītas, un, tā kā IE dominēja 2000. gadu sākumā un neizmantoja „mūžzaļo” atjaunošanas stratēģiju, līdz mūsdienām joprojām bieži sastopamas senas versijas.

2016. gadā Microsoft paātrināja IE iznīkšanu, pārtraucot atbalstu desmitajai un agrākām versijām, ierobežojot atbalstu uz IE 11. Un arvien biežāk tīmekļa izstrādātāji var atļauties ignorēt saderību ar IE.

Pat jQuery pārtrauca atbalstīt IE 8 un zemāk kopš versijas 2.0, kas tika izlaista 2013. gadā. Un, lai gan dažos gadījumos joprojām ir nepieciešams atbalsts IE, piemēram, vecās vietnēs, šādas situācijas kļūst arvien retākas.

Jauni framewoki

Kopš jQuery parādīšanās ir izveidoti daudzi framewoki, tostarp mūsdienu līderi React, Angular un Vue. Viņiem ir divi svarīgi ieguvumi salīdzinājumā ar jQuery.

Pirmkārt, tie ļauj viegli sadalīt lietotāja saskarni komponentos. Framewoki ir izstrādāti, lai apstrādātu renderēšanu un lapas atjaunināšanu. Savukārt jQuery parasti tiek izmantots tikai atjaunināšanai, uzliekot serverim uzdevumu nodrošināt sākotnējo lapu.

No otras puses, React, Angular un Vue komponenti ļauj cieši saistīt HTML, kodu un pat CSS. Tāpat kā mēs sadalām kodu vairākās patstāvīgās funkcijās un klasēs, iespēja dalīt saskarni atkārtoti izmantojamās komponentēs atvieglo sarežģītu vietņu veidošanu un apkopi.

Otrs ieguvums ir tas, ka jaunākie framewoki ievēro deklaratīvo paradigmu, kurā izstrādātājs apraksta, kādai jāizskatās saskarnei, bet visus nepieciešamos izmaiņu veikšanas uzdevumus uzņem framewoks. Šis pieejas veids ir pretstatā imperatīvajai pieejai, kas raksturīga jQuery kodam.

jQuery jūs skaidri norādāt soļus, lai veiktu kādas izmaiņas. Savukārt deklaratīvajā framewokā jūs sakāt: „Saskaņā ar šiem datiem, saskarnei jāizskatās tā.” Tas var ļoti atvieglot koda rakstīšanu bez kļūdām.

Izstrādātāji ir pieņēmuši jaunus pieejas veidus tīmekļa vietņu izstrādē, kā rezultātā jQuery popularitāte ir samazinājusies.

Kad izmantot jQuery?

Kad tad jā izmantojiet jQuery?

Ja projekta sarežģītība pieaugs, labāk ir sākt ar citu bibliotēku vai ietvaru, kas ļauj saprātīgi pārvaldīt sarežģītību. Piemēram, sadalīt saskarni komponentos. jQuery izmantošana šādās vietnēs pirmajos soļos var šķist pieņemama, bet tas ātri novedīs pie spageti koda rašanās, kad jūs nebūsiet pārliecināti, kuru fragmentu uz kuru lapas daļu tas ietekmē.

Es esmu bijis šādā situācijā, kad, mēģinot veikt jebkādas izmaiņas, rodas sajūta par grūtu uzdevumu. Nav iespējams būt drošam, ka nekas nesalūzīs, jo jQuery selektori ir atkarīgi no HTML struktūras, ko izveidojis serveris.

Citas galā ir vienkāršas vietnes, kurām nepieciešama tikai neliela interaktivitāte vai dinamiska satura. Šādās situācijās es arī nemēģinātu pēc noklusējuma izmantot jQuery, jo ar nativajiem API var izdarīt daudz vairāk.

Pat ja man būs nepieciešams kaut kas jaudīgāks, es meklēšu specializētu bibliotēku, piemēram, axios Ajax vai Animate.css animācijām. Tas būs vienkāršāk, nekā ielādēt visu jQuery mazu funkcionalitāti.

Es domāju, ka labākais iemesls jQuery izmantošanai ir tas, ka tā nodrošina visaptverošu funkcionalitāti tīmekļa vietnes frontendam. Tā vietā, lai apgūtu dažādus nativus API vai specializētās bibliotēkas, jūs varat izlasīt tikai jQuery dokumentāciju un tūlīt kļūt produktīvi.

Imperatīvais pieejas veids slikti mērogojas, bet to ir vieglāk apgūt nekā citu bibliotēku deklaratīvās pieejas. Tīmekļa vietnei ar skaidri ierobežotām iespējām labāk ir izmantot jQuery un mierīgi strādāt: bibliotēka neprasa sarežģītu kompilāciju vai sagatavošanu.

Turklāt jQuery ir laba, ja esat pārliecināts, ka vietne nepārvērtīsies sarežģītākā projektā, un ja jūs nesatrauc nativā funkcionalitāte, kas neapšaubāmi prasīs rakstīt vairāk kodu nekā jQuery.

Jūs varat arī izmantot šo bibliotēku, ja ir nepieciešams atbalstīt vecākas IE versijas. Tādā gadījumā jQuery kalpos jums tāpat kā tajos laikos, kad IE bija populārākais pārlūks.

Skats nākotnē

jQuery vēl ilgi nepazudīs. Tā aktīvi attīstās, un daudzi izstrādātāji dod priekšroku izmantot tās API, pat tad, ja ir pieejamas nativās metodes. Bibliotēka ir palīdzējusi veselim izstrādātāju paudzei izveidot vietnes, kas darbojas visās pārlūkprogrammās. Un, lai arī daudzos aspektos to ir aizstājušas jaunas bibliotēkas, ietvari un paradigmas, jQuery ir spēlējusi milzīgu pozitīvu lomu mūsdienu tīmekļa izveidē.

Ja jQuery funkcionalitāte būtiski nemainīsies, ir visai iespējams, ka nākamo pāris gadu laikā bibliotēkas izmantošana turpinās lēni, bet nenovēršami samazināties. Jaunās tīmekļa vietnes parasti tiek veidotas, izmantojot modernas ietvarprogrammas, un atbilstoši jQuery izmantošanas scenāriji rodas arvien retāk.

Kādam nepatīk rīku novecošanas intensitāte tīmekļa izstrādē, bet man tas liecina par ātru progresu. jQuery ļāva mums darīt daudz labāk. Tas pats attiecas uz tās mantotājiem.

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster