Historia ya jQuery na Urithi

Historia ya jQuery na Urithi
jQuery - hii ndiyo maarufu zaidi katika ulimwengu maktaba ya JavaScript. Jumuiya ya ukuzaji wa wavuti iliiunda mwishoni mwa miaka ya 2000, na kusababisha mfumo tajiri wa ikolojia wa tovuti, programu-jalizi, na mifumo kwa kutumia jQuery chini ya kofia.

Lakini katika miaka ya hivi karibuni, hadhi yake kama zana kuu ya ukuzaji wa wavuti imeharibika. Hebu tuangalie kwa nini jQuery ikawa maarufu na kwa nini ilianguka nje ya mtindo, na pia katika hali gani bado inashauriwa kuitumia kuunda tovuti za kisasa.

Historia fupi ya jQuery

John Resig (John Resig) iliunda toleo la kwanza la maktaba mnamo 2005, na iliyochapishwa mwaka 2006-m, kwenye hafla inayoitwa BarCampNYC. Washa tovuti rasmi ya jQuery mwandishi aliandika:

jQuery ni maktaba ya Javascript kulingana na kauli mbiu: Javascript inapaswa kufurahisha kuweka msimbo. jQuery huchukua kazi za kawaida, zinazojirudia, huondoa alama zote zisizo za lazima, na kuzifanya fupi, za kifahari na safi.

jQuery ina faida kuu mbili. Ya kwanza ni API rahisi ya kudhibiti kurasa za wavuti. Hasa, hutoa njia zenye nguvu za kuchagua vipengele. Sio tu kwamba unaweza kuchagua kwa kitambulisho au darasa, jQuery hukuruhusu kuandika misemo ngumu, kwa mfano, kuchagua vitu kulingana na uhusiano wao na vitu vingine:

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

Baada ya muda, utaratibu wa uteuzi ukawa maktaba tofauti Sizzle.

Faida ya pili ya maktaba ni kwamba iliondoa tofauti kati ya vivinjari. Katika miaka hiyo, ilikuwa vigumu kuandika msimbo ambao unaweza kufanya kazi kwa uaminifu katika vivinjari vyote.

Ukosefu wa kusawazisha ulimaanisha kuwa wasanidi programu walihitaji kuhesabu tofauti nyingi kati ya vivinjari na visa vya ukingo. Angalia nambari hii ya chanzo ya jQuery ya mapema na utafute jQuery.browser. Hapa kuna mfano mmoja:

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

Na kutokana na jQuery, wasanidi programu wanaweza kuhamisha wasiwasi kuhusu mitego hii yote kwenye mabega ya timu inayounda maktaba.

Baadaye, jQuery ilifanya iwe rahisi kutekeleza teknolojia ngumu zaidi kama vile uhuishaji na Ajax. Maktaba imekuwa tegemezi la kawaida kwa tovuti. Na leo ina nguvu sehemu kubwa ya mtandao. W3Techs inaamini hivyo 74% ya tovuti leo zinatumia jQuery.

Udhibiti wa ukuzaji wa jQuery pia umerasimishwa zaidi. Mwaka 2011 timu imeunda Bodi ya jQuery. Na katika Bodi ya jQuery ya 2012 imebadilishwa kuwa jQuery Foundation.

Mnamo 2015, Wakfu wa jQuery uliunganishwa na Wakfu wa Dojo, kuunda JS Foundation, ambayo iliunganishwa na Node.js Foundation kuwa 2019-m kuunda Msingi wa OpenJS, ambayo jQuery ilikuwa moja ya "miradi ya mafanikio. Β»

Kubadilisha hali

Walakini, katika miaka ya hivi karibuni jQuery ilipoteza umaarufu wake. GitHub iliondoa maktaba kutoka sehemu ya mbele ya tovuti yangu. Mkanda wa boot v5 ondoa jQuerykwa sababu ni yake"utegemezi mkubwa zaidi wa mteja kwa JavaScript ya kawaida"(kwa sasa 30 KB kwa ukubwa, minified na packed). Mitindo kadhaa ya ukuzaji wa wavuti imedhoofisha msimamo wa jQuery kama zana muhimu.

Vivinjari

Kwa sababu kadhaa, tofauti na vikwazo vya kivinjari vimekuwa muhimu sana. Kwanza, usanifishaji umeboreshwa. Watengenezaji wakuu wa vivinjari (Apple, Google, Microsoft na Mozilla) wanafanya kazi pamoja kukuza viwango vya wavuti ndani Kikundi Kazi cha Teknolojia ya Matumizi ya Maandishi ya Wavuti.
Ingawa vivinjari bado vinatofautiana kutoka kwa kila mmoja kwa njia kadhaa muhimu, wachuuzi angalau wana njia ya kutafuta na kuunda hifadhidata ya kawaida badala ya vita vya kudumu pamoja. Ipasavyo, API za kivinjari zimepata uwezo mpya. Kwa mfano, Leta API inayoweza kuchukua nafasi ya kazi za Ajax kutoka 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);
    });

Njia querySelector ΠΈ querySelectorAll nakala za wateuzi wa jQuery:

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

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

Sasa unaweza kuendesha madarasa ya vipengele kwa kutumia Orodha ya darasa:

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

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

tovuti Huenda Usihitaji jQuery Hapa kuna hali chache zaidi ambazo msimbo wa jQuery unaweza kubadilishwa na msimbo wa asili. Watengenezaji wengine hushikamana na jQuery kila wakati kwa sababu hawajui kuhusu API mpya, lakini wanapojua, wanaanza kutumia maktaba mara chache.

Kutumia vipengele asili huboresha utendaji wa ukurasa. Nyingi athari za uhuishaji kutoka kwa jQuery sasa unaweza kutekeleza ufanisi zaidi kwa kutumia CSS.

Sababu ya pili ni kwamba vivinjari vinasasishwa kwa kasi zaidi kuliko hapo awali. Wengi wao hutumia mkakati wa upya wa "evergreen"., isipokuwa Apple Safari. Zinaweza kusasishwa chinichini bila kuhusika na mtumiaji na hazijaunganishwa na masasisho ya Mfumo wa Uendeshaji.

Hii ina maana kwamba vipengele vipya vya kivinjari na marekebisho ya hitilafu husambazwa kwa kasi zaidi, na watengenezaji hawana budi kungoja hadi Ninaweza kutumia itafikia kiwango kinachokubalika. Wanaweza kutumia vipengele vipya na API kwa ujasiri bila kupakua jQuery au aina nyingi za kujaza.

Sababu ya tatu ni kwamba Internet Explorer inakaribia hali ya kutokuwa na umuhimu kabisa. IE kwa muda mrefu imekuwa shida ya ukuzaji wa wavuti kote ulimwenguni. Hitilafu zake zilienea, na kwa sababu IE ilitawala miaka ya 2000 na haikutumia mkakati wa usasishaji wa kijani kibichi, matoleo ya zamani bado ni ya kawaida.

Mnamo 2016, Microsoft iliharakisha uondoaji wa IE, kuacha kuunga mkono matoleo ya kumi na ya awali, yanayotumika tu kwa IE 11. Na inazidi kuwa, watengenezaji wavuti wana anasa ya kupuuza uoanifu wa IE.

Hata jQuery iliacha kuunga mkono IE 8 na chini kuanzia toleo la 2.0, iliyochapishwa mnamo 2013. Na ingawa katika hali zingine usaidizi wa IE bado unahitajika, kwa mfano, kwenye tovuti za zamani, hali hizi hutokea mara chache na kidogo.

Mifumo mipya

Tangu ujio wa jQuery, mifumo mingi imeundwa, ikiwa ni pamoja na viongozi wa kisasa Tenda, Angular ΠΈ Vue. Wana faida mbili muhimu juu ya jQuery.

Kwanza, hufanya iwe rahisi kutenganisha kiolesura cha mtumiaji katika vipengele. Mifumo imeundwa kushughulikia utoaji na kusasisha ukurasa. Na jQuery kawaida hutumiwa tu kwa uppdatering, na kuacha kazi ya kutoa ukurasa wa awali kwa seva.

Kwa upande mwingine, vipengele vya React, Angular na Vue hukuruhusu kuunganisha HTML, msimbo na hata CSS. Kama vile tunavyogawanya msingi wa msimbo katika vitendaji na madarasa mengi yanayojitosheleza, uwezo wa kugawanya kiolesura katika vipengele vinavyoweza kutumika tena hurahisisha kujenga na kudumisha tovuti changamano.

Faida ya pili ni kwamba mifumo ya hivi karibuni zaidi inafuata dhana ya kutangaza, ambayo msanidi anaelezea jinsi kiolesura kinapaswa kuonekana na kuiacha kwenye mfumo kufanya mabadiliko yote muhimu ili kufikia kile kinachohitajika. Njia hii ni kinyume na mbinu ya lazima ambayo ina sifa ya nambari ya jQuery.

Katika jQuery, unaandika kwa uwazi hatua za kufanya mabadiliko yoyote. Na katika mfumo wa kutangaza unasema, "Kulingana na data hii, kiolesura kinapaswa kuonekana kama hiki." Hii inaweza kufanya kuandika nambari isiyo na hitilafu iwe rahisi sana.

Watengenezaji wametumia mbinu mpya za ukuzaji tovuti, ndiyo maana umaarufu wa jQuery umepungua.

Wakati wa kutumia jQuery?

Hivyo lini lazima kutumia jQuery?

Ikiwa utata wa mradi unaongezeka, basi ni bora kuanza na maktaba nyingine au mfumo unaokuwezesha kusimamia kwa maana utata. Kwa mfano, ugawanye interface katika vipengele. Kutumia jQuery kwenye tovuti kama hizi kunaweza kuonekana kuwa sawa mwanzoni, lakini kutasababisha msimbo wa tambi haraka ambapo huna uhakika ni kipande kipi kinaathiri sehemu gani ya ukurasa.

Nimekuwa katika hali kama hiyo, wakati wa kujaribu kufanya mabadiliko yoyote, inahisi kama kazi ngumu. Huwezi kuwa na uhakika hutavunja chochote kwa sababu viteuzi vya jQuery hutegemea muundo wa HTML unaozalishwa na seva.

Kwa upande mwingine wa kipimo ni tovuti rahisi ambazo zinahitaji tu mwingiliano au maudhui yanayobadilika. Nisingechagua jQuery katika visa hivi pia, kwa sababu kuna mengi zaidi unaweza kufanya na API asili.

Hata nikihitaji kitu chenye nguvu zaidi, nitatafuta maktaba maalumu, k.m. axi kwa Ajax au Animate.css kwa uhuishaji. Hii itakuwa rahisi kuliko kupakia jQuery yote kwa utendakazi mdogo.

Nadhani sababu bora ya kutumia jQuery ni kwamba hutoa utendaji kamili kwa mwisho wa tovuti. Badala ya kujifunza aina mbalimbali za API asili au maktaba maalum, unaweza kusoma tu hati za jQuery na kuwa na tija papo hapo.

Mbinu ya lazima haina ukubwa mzuri, lakini ni rahisi kujifunza kuliko mbinu ya kutangaza ya maktaba nyingine. Kwa tovuti iliyo na uwezo mdogo wazi, ni bora kutumia jQuery na kufanya kazi kwa utulivu: maktaba hauhitaji mkusanyiko tata au mkusanyiko.

Zaidi ya hayo, jQuery ni nzuri ikiwa una uhakika kwamba tovuti yako haitakuwa ngumu kwa muda, na ikiwa haujali kuhusu utendakazi asilia, ambayo kwa hakika itahitaji kuandika msimbo zaidi kuliko jQuery.

Unaweza pia kutumia maktaba hii ikiwa unahitaji kuauni matoleo ya zamani ya IE. Kisha jQuery itakutumikia kama ilivyokuwa zamani wakati IE ilikuwa kivinjari maarufu zaidi.

Angalia katika siku zijazo

jQuery haitatoweka hivi karibuni. Yeye zinazoendelea kikamilifu, na watengenezaji wengi wanapendelea kutumia API yake, hata kama njia asili zinapatikana. Maktaba imesaidia kizazi kizima cha watengenezaji kuunda tovuti zinazofanya kazi kwenye kivinjari chochote. Ingawa imebadilishwa kwa njia nyingi na maktaba mpya, mifumo, na dhana, jQuery imekuwa na jukumu chanya katika uundaji wa wavuti ya kisasa.

Isipokuwa utendakazi wa jQuery ukibadilika sana, kuna uwezekano kwamba utumiaji wa maktaba utaendelea kupungua polepole lakini polepole katika miaka michache ijayo. Tovuti mpya zinaelekea kujengwa kwa kutumia mifumo ya kisasa zaidi tangu mwanzo, na hali zinazofaa za utumiaji wa jQuery zinazidi kuwa nadra.

Baadhi ya watu hawapendi kasi ya zana za ukuzaji wa wavuti kutotumika, lakini kwangu ni ushahidi wa maendeleo ya haraka. jQuery imeturuhusu kufanya mambo mengi vizuri zaidi. Ndivyo ilivyo kwa warithi wake.

Chanzo: mapenzi.com

Kuongeza maoni