jQuery Keeb Kwm thiab Txoj Cai

jQuery Keeb Kwm thiab Txoj Cai
jQuery - qhov no yog qhov nrov tshaj plaws nyob rau hauv lub ntiaj teb no lub tsev qiv ntawv JavaScript. Lub vev xaib txhim kho hauv zej zog tau tsim nws thaum xyoo 2000s lig, ua rau muaj kev nplua nuj ntawm cov chaw, plugins, thiab cov txheej txheem siv jQuery hauv qab hood.

Tab sis nyob rau hauv xyoo tas los no, nws cov xwm txheej yog cov cuab yeej tseem ceeb rau kev txhim kho lub vev xaib tau ploj mus. Cia peb saib yog vim li cas jQuery tau nrov thiab yog vim li cas nws poob ntawm kev zam, thiab nyob rau hauv dab tsi tshwm sim nws tseem pom zoo kom siv nws los tsim cov vev xaib niaj hnub.

Keeb kwm luv luv ntawm jQuery

John Resig (John Resig) tsim thawj lub tsev qiv ntawv hauv xyoo 2005, thiab luam tawm xyoo 2006-m, ntawm qhov kev tshwm sim hu ua BarCampNYC. Ntawm jQuery official lub vev xaib tus sau sau:

jQuery yog ib lub tsev qiv ntawv Javascript raws li lub ntsiab lus: Javascript yuav tsum lom zem rau code. jQuery siv ntau yam, rov ua haujlwm, tshem tawm tag nrho cov cim tsis tsim nyog, thiab ua rau lawv luv luv, elegant, thiab huv si.

jQuery muaj ob lub ntsiab zoo. Thawj qhov yog API yooj yim rau kev tswj cov nplooj ntawv web. Hauv particular, nws muab txoj hauv kev zoo rau kev xaiv cov khoom. Tsis tsuas yog koj tuaj yeem xaiv los ntawm ID lossis chav kawm, jQuery tso cai rau koj sau cov kab lus nyuaj, piv txwv li, xaiv cov ntsiab lus raws li lawv txoj kev sib raug zoo nrog lwm cov ntsiab lus:

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

Nyob rau tib lub sijhawm, cov txheej txheem xaiv tau los ua ib lub tsev qiv ntawv cais Sizzle.

Qhov thib ob kom zoo dua ntawm lub tsev qiv ntawv yog tias nws abstracted sib txawv ntawm browsers. Hauv cov xyoo ntawd, nws nyuaj rau sau cov lej uas tuaj yeem ua haujlwm ntseeg tau hauv txhua qhov browsers.

Qhov tsis muaj tus qauv txhais tau tias cov neeg tsim khoom xav tau los suav rau ntau qhov sib txawv ntawm browsers thiab ntug rooj plaub. Ua tib zoo saib no thaum ntxov jQuery qhov chaws thiab nrhiav jQuery.browser. Nov yog ib qho piv txwv:

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

Thiab ua tsaug rau jQuery, cov neeg tsim khoom tuaj yeem hloov qhov kev txhawj xeeb ntawm tag nrho cov pitfalls mus rau lub xub pwg nyom ntawm pab neeg tsim lub tsev qiv ntawv.

Tom qab ntawd, jQuery tau ua kom yooj yim dua los siv cov thev naus laus zis ntau dua xws li cov animations thiab Ajax. Lub tsev qiv ntawv tau zoo dhau los ua tus qauv kev vam khom rau cov vev xaib. Thiab niaj hnub no nws powers ib feem loj ntawm Internet. W3Techs ntseeg qhov ntawd 74% ntawm cov vev xaib niaj hnub no siv jQuery.

Kev tswj hwm jQuery txoj kev loj hlob kuj tau dhau los ua kev cai. Nyob rau hauv 2011 pab neeg tsim jQuery Board. Thiab hauv 2012 jQuery Board hloov mus rau jQuery Foundation.

Hauv 2015, jQuery Foundation koom nrog Dojo Foundation, los tsim JS Foundation, uas tom qab ntawd merged nrog Node.js Foundation rau hauv 2019-m tsim OpenJS Foundation, nyob rau hauv uas jQuery yog ib qho ntawm "tej yaam num. "

Hloov qhov xwm txheej

Txawm li cas los xij, hauv xyoo tas los no jQuery poob nws qhov chaw. GitHub tshem tawm lub tsev qiv ntawv los ntawm frontend ntawm kuv qhov chaw. Bootstrap v5 tshem tawm jQueryvim nws yog nws "cov neeg siv khoom loj tshaj plaws nyob rau qhov tsis tu ncua JavaScript"(tam sim no 30 KB loj, me me thiab ntim). Ntau qhov kev hloov pauv hauv kev txhim kho lub vev xaib tau ua rau jQuery txoj haujlwm tsis muaj zog raws li cov cuab yeej tseem ceeb.

Browsers

Rau ntau qhov laj thawj, qhov sib txawv ntawm qhov browser thiab cov kev txwv tau dhau los ua qhov tsis tseem ceeb. Ua ntej, standardization tau txhim kho. Cov neeg tsim tawm loj browser (Apple, Google, Microsoft thiab Mozilla) tab tom ua haujlwm ua ke los tsim web qauv nyob rau hauv lub moj khaum Web Hypertext Application Technology Working Group.
Txawm hais tias browsers tseem sib txawv ntawm ib leeg hauv ntau txoj hauv kev tseem ceeb, cov neeg muag khoom tsawg kawg muaj ib txoj hauv kev los tshawb nrhiav thiab tsim cov ntaub ntawv sib txawv es tsis txhob tsov rog mus tas li ua ke. Raws li, browser APIs tau txais cov peev txheej tshiab. Piv txwv li, Siv API muaj peev xwm hloov Ajax functions los ntawm 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);
    });

Txoj kev querySelector ΠΈ querySelectorAll duplicate jQuery pickers:

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

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

Tam sim no koj tuaj yeem tswj hwm cov chav kawm siv classList:

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

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

Rau ntawm qhov chaw Tej zaum koj yuav tsis xav tau jQuery Nov yog ob peb qhov xwm txheej ntxiv uas jQuery code tuaj yeem hloov nrog cov cai ib txwm muaj. Qee tus tsim tawm ib txwm nrog jQuery vim lawv tsuas tsis paub txog APIs tshiab, tab sis thaum lawv ua, lawv pib siv lub tsev qiv ntawv tsawg dua.

Kev siv cov yam ntxwv hauv haiv neeg txhim kho nplooj ntawv ua haujlwm. Ntau animation cuam tshuam los ntawm jQuery tam sim no koj tuaj yeem siv tau zoo dua siv CSS.

Qhov thib ob yog vim li cas browsers tau hloov kho sai dua li ua ntej. Feem ntau ntawm lawv siv "evergreen" rov tsim dua tshiab, tshwj tsis yog Apple Safari. Lawv tuaj yeem hloov kho hauv keeb kwm yav dhau yam tsis muaj cov neeg siv koom nrog thiab tsis raug khi rau OS hloov tshiab.

Qhov no txhais tau hais tias cov tshiab browser nta thiab kho kab laum tau faib sai dua, thiab cov neeg tsim khoom tsis tas yuav tos kom txog thaum lub Kuv Siv Tau yuav mus txog qib uas tau txais. Lawv tuaj yeem ntseeg siab siv cov yam ntxwv tshiab thiab APIs yam tsis tau rub tawm jQuery lossis polyfills.

Qhov thib peb yog vim li cas Internet Explorer tab tom mus txog lub xeev ntawm kev tsis sib haum xeeb. IE tau ntev dhau los ua qhov txwv tsis pub tsim web thoob ntiaj teb. Nws cov kab mob tau nthuav dav, thiab vim tias IE tau tuav lub xyoo 2000s thiab tsis siv lub tswv yim hloov tshiab txhua xyoo, cov ntawv qub tseem muaj ntau.

Hauv xyoo 2016, Microsoft tau nrawm rau kev tshem tawm ntawm IE, tsis txhawb thib kaum thiab yav dhau los versions, txwv kev txhawb nqa rau IE 11. Thiab nce ntxiv, cov neeg tsim tawm lub vev xaib muaj cov khoom kim heev uas tsis quav ntsej IE compatibility.

Txawm tias jQuery nres txhawb IE 8 thiab hauv qab pib los ntawm version 2.0, luam tawm nyob rau hauv 2013. Thiab txawm hais tias qee qhov kev txhawb nqa IE tseem xav tau, piv txwv li, ntawm cov chaw qub, cov xwm txheej no tshwm sim tsawg thiab tsawg dua.

Cov txheej txheem tshiab

Txij li thaum lub advent ntawm jQuery, ntau lub moj khaum tau tsim, nrog rau cov thawj coj niaj hnub React, angular ΠΈ Vue. Lawv muaj ob qhov txiaj ntsig tseem ceeb ntawm jQuery.

Ua ntej, lawv ua kom yooj yim cais cov neeg siv interface rau hauv cov khoom. Lub moj khaum yog tsim los daws cov nplooj ntawv rendering thiab hloov kho tshiab. Thiab jQuery feem ntau tsuas yog siv rau kev hloov kho, tawm hauv txoj haujlwm ntawm kev muab nplooj ntawv thawj zaug rau lub server.

Ntawm qhov tod tes, React, Angular thiab Vue Cheebtsam tso cai rau koj kom nruj ob peb HTML, code thiab txawm tias CSS. Ib yam li peb faib cov cai hauv paus rau ntau qhov kev ua haujlwm ntawm tus kheej thiab cov chav kawm, lub peev xwm los faib cov kev sib txuas rau hauv cov khoom siv rov siv tau ua kom yooj yim rau kev tsim thiab tswj cov chaw nyuaj.

Qhov thib ob qhov zoo dua yog tias cov txheej txheem tsis ntev los no ua raws li cov lus tshaj tawm, uas tus tsim tawm piav qhia qhov kev sib txuas yuav tsum zoo li cas thiab tawm mus rau hauv lub moj khaum kom ua txhua yam tsim nyog hloov pauv kom ua tiav qhov xav tau. Txoj hauv kev no yog qhov tsis sib xws rau txoj hauv kev tseem ceeb uas ua rau jQuery code.

Hauv jQuery, koj qhia meej meej sau cov kauj ruam kom hloov pauv. Thiab nyob rau hauv lub moj khaum tshaj tawm koj hais, "Raws li cov ntaub ntawv no, lub interface yuav tsum zoo li no." Qhov no tuaj yeem ua rau kev sau kab tsis muaj kab mob yooj yim dua.

Cov neeg tsim tawm tau txais cov kev qhia tshiab rau kev txhim kho lub vev xaib, uas yog vim li cas jQuery qhov chaw tau poob qis.

Thaum twg siv jQuery?

Yog li thaum yuav tsum siv jQuery?

Yog tias qhov nyuaj ntawm qhov project nce, ces nws yog qhov zoo dua los pib nrog lwm lub tsev qiv ntawv lossis lub moj khaum uas tso cai rau koj kom muaj txiaj ntsig tswj kev nyuaj. Piv txwv li, faib lub interface rau hauv cov khoom. Siv jQuery ntawm cov vev xaib zoo li no yuav zoo thaum xub thawj, tab sis nws yuav sai sai ua rau spaghetti code uas koj tsis paub meej tias cov fragment cuam tshuam qhov twg ntawm nplooj ntawv.

Kuv tau nyob hauv qhov xwm txheej zoo li no, thaum sim ua kom muaj kev hloov pauv, nws zoo li ib txoj haujlwm nyuaj. Koj tsis tuaj yeem paub tseeb tias koj yuav tsis ua txhaum dab tsi vim jQuery selectors nyob ntawm tus qauv HTML tsim los ntawm server.

Ntawm qhov kawg ntawm qhov ntsuas yog qhov chaw yooj yim uas tsuas yog xav tau me ntsis ntawm kev sib cuam tshuam lossis cov ntsiab lus dynamic. Kuv yuav tsis ua rau jQuery rau cov xwm txheej no, vim tias muaj ntau ntau koj tuaj yeem ua nrog APIs ib txwm muaj.

Txawm tias kuv xav tau ib yam dab tsi muaj zog dua, kuv yuav nrhiav ib lub tsev qiv ntawv tshwj xeeb, xws li. axios rau Ajax or Animate.css rau animations. Qhov no yuav yooj yim dua li kev thauj khoom tag nrho jQuery rau kev ua haujlwm me me.

Kuv xav tias qhov laj thawj zoo tshaj plaws rau kev siv jQuery yog tias nws muab kev ua haujlwm dav dav rau pem hauv ntej kawg ntawm lub vev xaib. Hloov chaw ntawm kev kawm ntau hom APIs lossis cov tsev qiv ntawv tshwj xeeb, koj tuaj yeem nyeem cov ntaub ntawv jQuery nkaus xwb thiab ua haujlwm tau sai.

Txoj hauv kev tseem ceeb tsis ntsuas qhov zoo, tab sis nws yooj yim rau kev kawm dua li kev tshaj tawm ntawm lwm lub tsev qiv ntawv. Rau ib lub vev xaib uas muaj peev xwm txwv tsis pub muaj kev txwv, nws yog qhov zoo dua los siv jQuery thiab ua haujlwm ntsiag to: lub tsev qiv ntawv tsis xav tau kev sib dhos lossis kev sib sau ua ke.

Tsis tas li ntawd, jQuery yog qhov zoo yog tias koj ntseeg siab tias koj lub vev xaib yuav tsis nyuaj rau lub sijhawm, thiab yog tias koj tsis quav ntsej txog kev ua haujlwm ib txwm muaj, uas yuav tsum tau sau cov lej ntau dua li jQuery.

Koj tuaj yeem siv lub tsev qiv ntawv no yog tias koj xav tau los txhawb cov ntawv qub ntawm IE. Tom qab ntawd jQuery yuav ua haujlwm rau koj zoo li nws tau rov qab rau lub sijhawm thaum IE yog qhov browser nrov tshaj plaws.

Saib rau yav tom ntej

jQuery yuav tsis ploj mus sai sai. Nws nquag txhim kho, thiab ntau tus neeg tsim khoom nyiam siv nws API, txawm tias cov txheej txheem ib txwm muaj. Lub tsev qiv ntawv tau pab tag nrho tiam ntawm cov neeg tsim khoom tsim cov vev xaib uas ua haujlwm ntawm txhua qhov browser. Txawm hais tias nws tau raug hloov pauv ntau txoj hauv kev los ntawm cov tsev qiv ntawv tshiab, cov txheej txheem, thiab cov ntsiab lus, jQuery tau ua lub luag haujlwm zoo hauv kev tsim lub vev xaib niaj hnub no.

Tshwj tsis yog tias jQuery qhov kev ua haujlwm hloov pauv loj, nws zoo li kev siv lub tsev qiv ntawv yuav txuas ntxiv mus qeeb tab sis tsis tu ncua nyob rau ob peb xyoos tom ntej no. Cov vev xaib tshiab yuav raug tsim los siv cov txheej txheem niaj hnub ntau dua los ntawm qhov pib, thiab siv cov ntaub ntawv tsim nyog rau jQuery tau dhau los ua qhov tsawg.

Qee tus neeg tsis nyiam tus nqi uas cov cuab yeej txhim kho lub vev xaib dhau los, tab sis rau kuv nws yog pov thawj ntawm kev nce qib sai. jQuery tau tso cai rau peb ua ntau yam zoo dua. Tib yam muaj tseeb rau nws cov neeg ua tiav.

Tau qhov twg los: www.hab.com

Ntxiv ib saib