jQuery Kasaysayan ug Kabilin

jQuery Kasaysayan ug Kabilin
jQuery - kini mao ang labing popular sa kalibutan usa ka librarya sa JavaScript. Gihimo kini sa komunidad sa pagpalambo sa web sa ulahing bahin sa 2000s, nga miresulta sa usa ka dato nga ekosistema sa mga site, plugins, ug mga framework gamit ang jQuery ubos sa hood.

Apan sa bag-ohay nga mga tuig, ang kahimtang niini ingon ang panguna nga himan alang sa pagpalambo sa web nadaot. Atong tan-awon kung ngano nga ang jQuery nahimong popular ug ngano nga kini nawala sa uso, ug usab sa unsang mga kaso nga girekomenda nga gamiton kini aron makahimo mga modernong website.

Usa ka Mubo nga Kasaysayan sa jQuery

John Resig (John Resig) naghimo sa unang bersyon sa library niadtong 2005, ug gipatik niadtong 2006-m, sa usa ka kalihokan nga gitawag og BarCampNYC. Sa jQuery opisyal nga website ang tagsulat misulat:

Ang jQuery usa ka librarya sa Javascript nga gibase sa motto: Ang Javascript kinahanglan nga makalingaw sa pag-code. Gikuha sa jQuery ang kasagaran, balik-balik nga mga buluhaton, gitangtang ang tanan nga wala kinahanglana nga marka, ug gihimo kini nga mubo, elegante, ug limpyo.

Ang jQuery adunay duha ka nag-unang bentaha. Ang una usa ka kombenyente nga API alang sa pagmaniobra sa mga panid sa web. Sa partikular, naghatag kini kusog nga mga pamaagi sa pagpili sa mga elemento. Dili lamang ikaw makapili pinaagi sa ID o klase, ang jQuery nagtugot kanimo sa pagsulat sa komplikadong mga ekspresyon, pananglitan, sa pagpili sa mga elemento base sa ilang mga relasyon sa ubang mga elemento:

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

Sa paglabay sa panahon, ang mekanismo sa pagpili nahimong lahi nga librarya Sipsip.

Ang ikaduha nga bentaha sa librarya mao nga kini nagkuha sa mga kalainan tali sa mga browser. Niadtong mga tuiga, lisud ang pagsulat sa code nga magamit nga kasaligan sa tanan nga mga browser.

Ang kakulang sa standardisasyon nagpasabut nga ang mga developer kinahanglan nga mag-asoy sa daghang mga kalainan tali sa mga browser ug mga kaso sa sulud. Tan-awa ang kining sayo nga jQuery source code ug pangitaa ang jQuery.browser. Ania ang usa ka pananglitan:

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

Ug salamat sa jQuery, mahimo’g ibalhin sa mga developer ang mga kabalaka bahin sa tanan nga mga pitfalls sa mga abaga sa team nga nagpalambo sa librarya.

Sa ulahi, gipasayon ​​sa jQuery ang pagpatuman sa mas komplikado nga mga teknolohiya sama sa mga animation ug Ajax. Ang library epektibo nga nahimong usa ka standard dependency alang sa mga website. Ug karon kini adunay gahum sa usa ka dako nga bahin sa Internet. Ang W3Techs nagtuo niana 74% sa mga site karon naggamit og jQuery.

Ang pagkontrol sa pagpalambo sa jQuery nahimo usab nga mas pormal. Sa 2011 ang team gibuhat jQuery Board. Ug sa 2012 jQuery Board giusab ngadto sa jQuery Foundation.

Sa 2015, ang jQuery Foundation naghiusa sa Dojo Foundation, sa paghimo sa JS Foundation, nga unya gihiusa sa Node.js Foundation ngadto sa 2019-m sa paghimo OpenJS Foundation, diin ang jQuery usa sa "breakthrough nga mga proyekto. "

Nagbag-o nga mga kahimtang

Apan, sa bag-ohay nga mga tuig jQuery nawala ang pagkapopular niini. GitHub gikuha ang librarya gikan sa atubangan sa akong site. Bootstrap v5 kuhaa ang jQuerykay iyaha"pinakadako nga pagsalig sa kliyente alang sa regular nga JavaScript"(karon 30 KB ang gidak-on, gigamay ug giputos). Daghang mga uso sa pagpalambo sa web ang nakapaluya sa posisyon sa jQuery isip usa ka importante nga himan.

Mga browser

Alang sa daghang mga hinungdan, ang mga kalainan sa browser ug mga limitasyon nahimong dili kaayo hinungdanon. Una, ang standardisasyon miuswag. Ang mga dagkong browser developers (Apple, Google, Microsoft ug Mozilla) nagtinabangay sa pagpalambo mga sumbanan sa web sulud sa gambalay Web Hypertext Application Technology Working Group.
Bisan kung ang mga browser lahi gihapon sa usag usa sa daghang hinungdanon nga mga paagi, ang mga tigbaligya labing menos adunay paagi sa pagpangita ug paghimo usa ka sagad nga database imbis nga permanenteng gubat kauban. Tungod niini, ang mga browser API nakakuha og bag-ong mga kapabilidad. Pananglitan, Kuhaa ang API makahimo sa pag-ilis sa mga function sa Ajax gikan sa 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);
    });

Mga pamaagi pangutanaSelector и pangutanaSelectorAll doble nga jQuery pickers:

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

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

Mahimo nimong mamanipula ang mga klase sa elemento gamit ang lista sa klase:

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

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

Sa site Mahimong Dili Nimo Kinahanglan ang jQuery Ania ang pipila pa nga mga sitwasyon diin ang jQuery code mahimong pulihan sa lumad nga code. Ang ubang mga developers kanunay nga nagpabilin sa jQuery tungod kay wala sila kahibalo bahin sa bag-ong mga API, apan kung buhaton nila, nagsugod sila sa paggamit sa librarya nga dili kaayo kanunay.

Ang paggamit sa lumad nga mga bahin makapauswag sa performance sa panid. Daghan mga epekto sa animation gikan sa jQuery karon mahimo nimong ipatuman mas epektibo gamit ang CSS.

Ang ikaduha nga hinungdan mao nga ang mga browser labi ka paspas nga na-update kaysa kaniadto. Kadaghanan kanila naggamit "evergreen" nga estratehiya sa pagbag-o, gawas sa Apple Safari. Mahimo kini nga ma-update sa background nga wala’y pag-apil sa tiggamit ug wala gihigot sa mga update sa OS.

Kini nagpasabot nga ang bag-ong mga feature sa browser ug mga pag-ayo sa bug mas paspas nga gipang-apud-apod, ug ang mga developers dili na kinahanglang maghulat hangtud sa Mahimo ba Akong Gamiton moabot sa madawat nga lebel. Masaligon silang makagamit sa mga bag-ong feature ug API nga walay pag-download sa jQuery o polyfills.

Ang ikatulo nga rason mao nga ang Internet Explorer nagkaduol sa usa ka kahimtang nga hingpit nga walay kalabotan. Ang IE dugay nang nahimong bane sa web development sa tibuok kalibutan. Ang mga bug niini kaylap, ug tungod kay ang IE nagdominar sa 2000s ug wala mogamit sa usa ka evergreen update nga estratehiya, ang mga daan nga bersyon komon gihapon.

Sa 2016, gipadali sa Microsoft ang pag-decommissioning sa IE, paghunong sa pagsuporta ikanapulo ug mas sayo nga mga bersyon, nga naglimite sa suporta ngadto sa IE 11. Ug nagkadaghan, ang mga web developers adunay kaluho sa dili pagtagad sa IE compatibility.

Bisan ang jQuery mihunong sa pagsuporta sa IE 8 ug sa ubos sugod sa bersyon 2.0, gipatik niadtong 2013. Ug bisan pa sa pipila ka mga kaso ang suporta sa IE gikinahanglan gihapon, pananglitan, sa mga daan nga mga site, kini nga mga sitwasyon dili kaayo motungha.

Bag-ong mga frameworks

Sukad sa pag-abut sa jQuery, daghang mga balangkas ang nahimo, lakip ang mga modernong lider React, Angular и Vue. Sila adunay duha ka importante nga bentaha sa jQuery.

Una, gipasayon ​​nila ang pagbulag sa user interface ngadto sa mga component. Ang mga balangkas gidisenyo aron pagdumala sa paghubad ug pag-update sa panid. Ug ang jQuery kasagaran gigamit lamang alang sa pag-update, gibiyaan ang tahas sa paghatag sa inisyal nga panid sa server.

Sa pikas bahin, ang React, Angular ug Vue nga mga sangkap nagtugot kanimo sa hugot nga paghiusa sa HTML, code ug bisan CSS. Sama nga atong gibahin ang code base ngadto sa daghang mga kaugalingon nga mga gimbuhaton ug mga klase, ang abilidad sa pagbahin sa interface ngadto sa magamit pag-usab nga mga sangkap makapasayon ​​sa pagtukod ug pagmentinar sa komplikadong mga site.

Ang ikaduha nga bentaha mao nga ang mas bag-o nga mga frameworks nagsunod sa usa ka deklaratibo nga paradigm, diin ang developer naghulagway kung unsa ang hitsura sa interface ug gibilin kini sa framework aron mahimo ang tanan nga kinahanglan nga mga pagbag-o aron makab-ot ang gitinguha. Kini nga pamaagi sukwahi sa imperative nga pamaagi nga nagpaila sa jQuery code.

Sa jQuery, klaro nimong isulat ang mga lakang aron mahimo ang bisan unsang mga pagbag-o. Ug sa usa ka deklaratibo nga balangkas moingon ka, "Sumala sa kini nga datos, ang interface kinahanglan nga ingon niini." Kini makahimo sa pagsulat sa bug-free code nga mas sayon.

Gisagop sa mga developer ang mga bag-ong pamaagi sa pag-uswag sa website, mao nga ang pagkapopular sa jQuery mikunhod.

Kanus-a gamiton ang jQuery?

Busa kanus-a kinahanglan gamita ang jQuery?

Kung ang pagkakomplikado sa proyekto nagdugang, nan mas maayo nga magsugod sa lain nga librarya o balangkas nga nagtugot kanimo sa makahuluganon nga pagdumala sa pagkakomplikado. Pananglitan, bahina ang interface sa mga sangkap. Ang paggamit sa jQuery sa ingon nga mga site mahimo’g maayo tan-awon sa una, apan kini dali nga motultol sa spaghetti code diin dili ka sigurado kung unsang tipik ang makaapekto kung unsang bahin sa panid.

Naa ko sa ingon nga sitwasyon, kung naningkamot sa paghimo sa bisan unsang pagbag-o, ingon og lisud nga buluhaton. Dili ka makasiguro nga dili nimo mabuak ang bisan unsang butang tungod kay ang mga tigpili sa jQuery nagdepende sa istruktura sa HTML nga gihimo sa server.

Sa pikas tumoy sa sukod mao ang yano nga mga site nga nanginahanglan lang gamay nga interaktibidad o dinamikong sulud. Dili usab ako mag-default sa jQuery sa kini nga mga kaso, tungod kay daghan pa ang mahimo nimo sa mga lumad nga API.

Bisan kung kinahanglan nako ang usa ka butang nga labi ka kusgan, mangita ako usa ka espesyal nga librarya, pananglitan. axios alang sa Ajax o Animate.css alang sa mga animation. Kini mahimong mas sayon ​​kay sa loading sa tanan nga jQuery alang sa usa ka gamay nga gamit.

Sa akong hunahuna ang labing maayo nga katarungan sa paggamit sa jQuery mao nga kini naghatag komprehensibo nga gamit alang sa atubangan nga tumoy sa usa ka website. Imbis nga magkat-on og lain-laing lumad nga API o espesyal nga mga librarya, mahimo nimong basahon ang jQuery nga dokumentasyon ug mahimong produktibo dayon.

Ang imperative approach dili maayo ang sukod, apan mas sayon ​​nga makat-on kay sa deklaratibo nga pamaagi sa ubang mga librarya. Alang sa usa ka site nga adunay klaro nga limitado nga mga kapabilidad, mas maayo nga gamiton ang jQuery ug magtrabaho nga kalmado: ang librarya wala magkinahanglan og komplikado nga asembliya o paghugpong.

Dugang pa, ang jQuery maayo kung masaligon ka nga ang imong site dili mahimong komplikado sa paglabay sa panahon, ug kung dili nimo igsapayan ang lumad nga gamit, nga siguradong magkinahanglan pagsulat labi pa nga code kaysa sa jQuery.

Mahimo usab nimo gamiton kini nga librarya kung kinahanglan nimo nga suportahan ang mga daan nga bersyon sa IE. Unya ang jQuery mag-alagad kanimo sama sa gibuhat kaniadto sa mga adlaw nga ang IE mao ang labing inila nga browser.

Tan-awa ang umaabut

Ang jQuery dili mawala sa dili madugay. Siya aktibo nga nag-uswag, ug daghang mga developer ang gusto nga gamiton ang API niini, bisan kung naa ang lumad nga mga pamaagi. Ang librarya nakatabang sa tibuok henerasyon sa mga developers sa paghimo og mga website nga magamit sa bisan unsang browser. Bisan kung gipulihan kini sa daghang mga paagi pinaagi sa bag-ong mga librarya, frameworks, ug paradigms, ang jQuery adunay dako nga positibo nga papel sa paghimo sa modernong web.

Gawas kung ang pagpaandar sa jQuery mabag-o kaayo, lagmit nga ang paggamit sa librarya magpadayon sa hinay apan makanunayon nga pagkunhod sa sunod nga mga tuig. Ang mga bag-ong website lagmit nga matukod gamit ang labi ka moderno nga mga balangkas gikan sa sinugdanan, ug ang angay nga mga kaso sa paggamit alang sa jQuery nahimong labi ka talagsaon.

Ang ubang mga tawo dili ganahan sa rate sa web development tools nahimong obsolete, apan alang kanako kini mao ang ebidensya sa paspas nga pag-uswag. Gitugotan kami sa jQuery sa pagbuhat sa daghang mga butang nga labi ka maayo. Tinuod usab kini alang sa iyang mga manununod.

Source: www.habr.com

Idugang sa usa ka comment