jQuery Hanes ac Etifeddiaeth

jQuery Hanes ac Etifeddiaeth
jQuery - dyma'r mwyaf poblogaidd yn y byd llyfrgell JavaScript. Creodd y gymuned datblygu gwe ef ar ddiwedd y 2000au, gan arwain at ecosystem gyfoethog o wefannau, ategion, a fframweithiau gan ddefnyddio jQuery o dan y cwfl.

Ond yn ystod y blynyddoedd diwethaf, mae ei statws fel y prif offeryn ar gyfer datblygu gwe wedi erydu. Gadewch i ni edrych ar pam y daeth jQuery yn boblogaidd a pham y daeth allan o ffasiwn, a hefyd ym mha achosion mae'n dal yn syniad da ei ddefnyddio i greu gwefannau modern.

Hanes Byr o jQuery

John Resig (John Resig) creu fersiwn gyntaf y llyfrgell yn 2005, a cyhoeddwyd yn 2006-m, mewn digwyddiad o'r enw BarCampNYC. Ar Gwefan swyddogol jQuery ysgrifennodd yr awdur:

Mae jQuery yn llyfrgell Javascript sy'n seiliedig ar yr arwyddair: Dylai javascript fod yn hwyl i'w godio. Mae jQuery yn cymryd tasgau cyffredin, ailadroddus, yn dileu'r holl farcio diangen, ac yn eu gwneud yn fyr, yn gain ac yn lân.

Mae gan jQuery ddwy brif fantais. Mae'r cyntaf yn API cyfleus ar gyfer trin tudalennau gwe. Yn benodol, mae'n darparu dulliau pwerus ar gyfer dewis elfennau. Nid yn unig y gallwch chi ddewis yn ôl ID neu ddosbarth, mae jQuery yn caniatáu ichi ysgrifennu ymadroddion cymhleth, er enghraifft, i ddewis elfennau yn seiliedig ar eu perthynas ag elfennau eraill:

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

Dros amser, daeth y mecanwaith dethol yn llyfrgell ar wahân Sizzle.

Ail fantais y llyfrgell oedd ei bod yn tynnu gwahaniaethau rhwng porwyr. Yn y blynyddoedd hynny, roedd yn anodd ysgrifennu cod a allai weithio'n ddibynadwy ym mhob porwr.

Roedd y diffyg safoni yn golygu bod angen i ddatblygwyr roi cyfrif am wahaniaethau niferus rhwng porwyr ac achosion ymyl. Cymerwch olwg ar y cod ffynhonnell jQuery cynnar hwn a chwilio am jQuery.browser. Dyma un enghraifft:

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

A diolch i jQuery, gallai datblygwyr symud y pryderon am yr holl beryglon hyn i ysgwyddau'r tîm sy'n datblygu'r llyfrgell.

Yn ddiweddarach, gwnaeth jQuery hi'n haws gweithredu technolegau mwy cymhleth fel animeiddiadau ac Ajax. Mae'r llyfrgell i bob pwrpas wedi dod yn ddibyniaeth safonol ar gyfer gwefannau. A heddiw mae'n pweru cyfran enfawr o'r Rhyngrwyd. Mae W3Techs yn credu hynny Mae 74% o safleoedd heddiw yn defnyddio jQuery.

Mae rheolaeth dros ddatblygiad jQuery hefyd wedi dod yn fwy ffurfiol. Yn 2011 y tîm creu Bwrdd jQuery. Ac yn 2012 jQuery Board trawsnewid yn Sefydliad jQuery.

Yn 2015, unodd Sefydliad jQuery â Sefydliad Dojo, i greu JS Foundation, a unodd wedyn â Sefydliad Node.js i mewn 2019-m i greu Sefydliad OpenJS, ac o fewn yr hwn roedd jQuery yn un o'r “prosiectau arloesol. »

Amgylchiadau newidiol

Fodd bynnag, yn y blynyddoedd diwethaf jQuery colli ei boblogrwydd. GitHub tynnu'r llyfrgell o flaen fy ngwefan. Bootstrap v5 cael gwared ar jQueryoherwydd ei fod yn "dibyniaeth fwyaf cleient ar gyfer JavaScript rheolaidd"(ar hyn o bryd 30 KB o ran maint, wedi'i leihau a'i bacio). Mae nifer o dueddiadau mewn datblygu gwe wedi gwanhau safle jQuery fel arf hanfodol.

Porwyr

Am nifer o resymau, mae gwahaniaethau a chyfyngiadau porwr wedi dod yn llai pwysig. Yn gyntaf, mae safoni wedi gwella. Mae datblygwyr porwr mawr (Apple, Google, Microsoft a Mozilla) yn cydweithio i ddatblygu safonau gwe o fewn y fframwaith Gweithgor Technoleg Cymwysiadau Hyperdestun Gwe.
Er bod porwyr yn dal i fod yn wahanol i'w gilydd mewn nifer o ffyrdd pwysig, mae gan werthwyr o leiaf fodd i chwilio a chreu cronfa ddata gyffredin yn lle rhyfel parhaol gyda'i gilydd. Yn unol â hynny, mae APIs porwr wedi ennill galluoedd newydd. Ee, Nôl API yn gallu disodli swyddogaethau Ajax o 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);
    });

Dulliau queryDetholwr и queryDetholwrAll codwyr jQuery dyblyg:

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

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

Gallwch nawr drin dosbarthiadau elfen gan ddefnyddio dosbarthRhestr:

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

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

Mae'r safle Efallai na fydd angen jQuery arnoch chi Dyma ychydig mwy o sefyllfaoedd lle gellir disodli cod jQuery â chod brodorol. Mae rhai datblygwyr bob amser yn cadw at jQuery oherwydd nid ydynt yn gwybod am yr APIs newydd, ond pan fyddant yn gwneud hynny, maent yn dechrau defnyddio'r llyfrgell yn llai aml.

Mae defnyddio nodweddion brodorol yn gwella perfformiad tudalen. llawer effeithiau animeiddio o jQuery nawr gallwch chi weithredu llawer mwy effeithiol defnyddio CSS.

Yr ail reswm yw bod porwyr yn cael eu diweddaru'n gynt o lawer nag o'r blaen. Mae'r rhan fwyaf ohonynt yn defnyddio strategaeth adnewyddu "bytholwyrdd"., ac eithrio Apple Safari. Gellir eu diweddaru yn y cefndir heb gynnwys defnyddwyr ac nid ydynt yn gysylltiedig â diweddariadau OS.

Mae hyn yn golygu bod nodweddion porwr newydd ac atgyweiriadau nam yn cael eu dosbarthu'n llawer cyflymach, ac nid oes rhaid i ddatblygwyr aros tan y Alla i Ddefnyddio yn cyrraedd lefel dderbyniol. Gallant ddefnyddio nodweddion newydd ac APIs yn hyderus heb lawrlwytho jQuery neu polyfills.

Y trydydd rheswm yw bod Internet Explorer yn agosáu at gyflwr o amherthnasedd llwyr. Mae IE wedi bod yn y bae o ddatblygiad gwe ledled y byd ers amser maith. Roedd ei fygiau'n gyffredin, ac oherwydd bod IE yn dominyddu'r 2000au ac nad oedd yn defnyddio strategaeth ddiweddaru fythwyrdd, mae fersiynau hŷn yn dal yn gyffredin.

Yn 2016, cyflymodd Microsoft y broses o ddatgomisiynu IE, rhoi'r gorau i gefnogi fersiynau degfed a cynharach, gan gyfyngu ar gefnogaeth i IE 11. Ac yn gynyddol, mae gan ddatblygwyr gwe y moethusrwydd o anwybyddu cydnawsedd IE.

Rhoddodd hyd yn oed jQuery y gorau i gefnogi IE 8 ac is gan ddechrau o fersiwn 2.0, a gyhoeddwyd yn 2013. Ac er bod angen cefnogaeth IE o hyd mewn rhai achosion, er enghraifft, ar safleoedd hŷn, mae'r sefyllfaoedd hyn yn codi'n llai ac yn llai aml.

Fframweithiau newydd

Ers dyfodiad jQuery, mae llawer o fframweithiau wedi'u creu, gan gynnwys arweinwyr modern Ymateb, Ewinedd и Vue. Mae ganddynt ddwy fantais bwysig dros jQuery.

Yn gyntaf, maen nhw'n ei gwneud hi'n hawdd gwahanu'r rhyngwyneb defnyddiwr yn gydrannau. Mae fframweithiau wedi'u cynllunio i ymdrin â rendro a diweddaru tudalennau. Ac fel arfer dim ond ar gyfer diweddaru y defnyddir jQuery, gan adael y dasg o ddarparu'r dudalen gychwynnol i'r gweinydd.

Ar y llaw arall, mae cydrannau React, Angular a Vue yn caniatáu ichi gyplu HTML, cod a hyd yn oed CSS yn dynn. Yn union wrth i ni rannu'r sylfaen cod yn nifer o swyddogaethau a dosbarthiadau hunangynhwysol, mae'r gallu i rannu'r rhyngwyneb yn gydrannau y gellir eu hailddefnyddio yn ei gwneud hi'n haws adeiladu a chynnal safleoedd cymhleth.

Yr ail fantais yw bod fframweithiau mwy diweddar yn cadw at batrwm datganiadol, lle mae'r datblygwr yn disgrifio sut olwg ddylai fod ar y rhyngwyneb ac yn ei adael i'r fframwaith wneud yr holl newidiadau angenrheidiol i gyflawni'r hyn a ddymunir. Mae'r dull hwn yn groes i'r dull hanfodol sy'n nodweddu cod jQuery.

Yn jQuery, rydych chi'n ysgrifennu'n benodol y camau i wneud unrhyw newidiadau. Ac mewn fframwaith datganiadol rydych chi'n dweud, "Yn ôl y data hwn, dylai'r rhyngwyneb edrych fel hyn." Gall hyn ei gwneud hi'n llawer haws ysgrifennu cod heb fygiau.

Mae datblygwyr wedi mabwysiadu dulliau newydd o ddatblygu gwefannau, a dyna pam mae poblogrwydd jQuery wedi lleihau.

Pryd i ddefnyddio jQuery?

Felly pryd rhaid iddynt fod yn defnyddio jQuery?

Os yw cymhlethdod y prosiect yn cynyddu, yna mae'n well dechrau gyda llyfrgell neu fframwaith arall sy'n eich galluogi i reoli cymhlethdod yn ystyrlon. Er enghraifft, rhannwch y rhyngwyneb yn gydrannau. Efallai y bydd defnyddio jQuery ar wefannau o'r fath yn edrych yn iawn ar y dechrau, ond bydd yn arwain yn gyflym at god sbageti lle nad ydych chi'n siŵr pa ddarn sy'n effeithio ar ba ran o'r dudalen.

Rwyf wedi bod yn y fath sefyllfa, wrth geisio gwneud unrhyw newid, mae'n teimlo fel tasg anodd. Ni allwch fod yn siŵr na fyddwch yn torri unrhyw beth oherwydd mae dewiswyr jQuery yn dibynnu ar y strwythur HTML a gynhyrchir gan y gweinydd.

Ar ben arall y raddfa mae gwefannau syml sydd ond angen ychydig o ryngweithio neu gynnwys deinamig. Ni fyddwn yn rhagosod jQuery yn yr achosion hyn ychwaith, oherwydd mae cymaint mwy y gallwch chi ei wneud gydag APIs brodorol.

Hyd yn oed os bydd angen rhywbeth mwy pwerus arnaf, byddaf yn chwilio am lyfrgell arbenigol, e.e. axios am Ajax neu Animate.css ar gyfer animeiddiadau. Bydd hyn yn haws na llwytho'r holl jQuery ar gyfer swyddogaeth fach.

Rwy'n meddwl mai'r rhesymeg orau dros ddefnyddio jQuery yw ei fod yn darparu ymarferoldeb cynhwysfawr ar gyfer pen blaen gwefan. Yn lle dysgu amrywiaeth o APIs brodorol neu lyfrgelloedd arbenigol, gallwch ddarllen y ddogfennaeth jQuery yn unig a dod yn gynhyrchiol ar unwaith.

Nid yw'r ymagwedd orfodol yn graddio'n dda, ond mae'n haws ei dysgu na dull datganiadol llyfrgelloedd eraill. Ar gyfer safle sydd â galluoedd cyfyngedig yn amlwg, mae'n well defnyddio jQuery a gweithio'n dawel: nid oes angen cydosod na chrynhoad cymhleth yn y llyfrgell.

Yn ogystal, mae jQuery yn dda os ydych chi'n hyderus na fydd eich gwefan yn mynd yn gymhleth dros amser, ac os nad oes ots gennych am ymarferoldeb brodorol, a fydd yn sicr yn gofyn am ysgrifennu mwy o god na jQuery.

Gallwch hefyd ddefnyddio'r llyfrgell hon os oes angen i chi gefnogi fersiynau hŷn o IE. Yna bydd jQuery yn eich gwasanaethu fel y gwnaeth yn ôl yn y dyddiau pan oedd IE y porwr mwyaf poblogaidd.

Edrych i'r dyfodol

Ni fydd jQuery yn diflannu unrhyw bryd yn fuan. hi datblygu'n weithredol, ac mae'n well gan lawer o ddatblygwyr ddefnyddio ei API, hyd yn oed os oes dulliau brodorol ar gael. Mae'r llyfrgell wedi helpu cenhedlaeth gyfan o ddatblygwyr i greu gwefannau sy'n gweithio ar unrhyw borwr. Er ei fod wedi cael ei ddisodli mewn sawl ffordd gan lyfrgelloedd, fframweithiau a phatrymau newydd, mae jQuery wedi chwarae rhan hynod gadarnhaol wrth greu'r we fodern.

Oni bai bod ymarferoldeb jQuery yn newid yn sylweddol, mae'n debygol y bydd y defnydd o'r llyfrgell yn parhau i ostwng yn araf ond yn raddol dros y blynyddoedd nesaf. Mae gwefannau newydd yn tueddu i gael eu hadeiladu gan ddefnyddio fframweithiau mwy modern o'r dechrau, ac mae achosion defnydd addas ar gyfer jQuery yn dod yn fwyfwy prin.

Nid yw rhai pobl yn hoffi'r gyfradd y mae offer datblygu gwe yn dod yn anarferedig, ond i mi mae'n dystiolaeth o gynnydd cyflym. Mae jQuery wedi ein galluogi i wneud llawer o bethau'n well. Mae'r un peth yn wir am ei holynwyr.

Ffynhonnell: hab.com

Ychwanegu sylw