jQuery Itan ati Legacy

jQuery Itan ati Legacy
jQuery - eyi jẹ olokiki julọ ni agbaye a JavaScript ìkàwé. Awujọ idagbasoke wẹẹbu ṣẹda rẹ ni awọn ọdun 2000 ti o kẹhin, ti o yọrisi ilolupo ilolupo ti awọn aaye, awọn afikun, ati awọn ilana nipa lilo jQuery labẹ hood.

Ṣugbọn ni awọn ọdun aipẹ, ipo rẹ bi ohun elo akọkọ fun idagbasoke wẹẹbu ti bajẹ. Jẹ ki a wo idi ti jQuery di olokiki ati idi ti o fi ṣubu ni aṣa, ati paapaa ni awọn ọran wo o tun jẹ imọran lati lo lati ṣẹda awọn oju opo wẹẹbu ode oni.

Itan kukuru ti jQuery

John Resig (John Resig) ṣẹda akọkọ ti ikede ti awọn ìkàwé ni 2005, ati ti a tẹjade ni ọdun 2006-m, ni iṣẹlẹ ti a npe ni BarCampNYC. Lori jQuery osise aaye ayelujara onkọwe kowe:

jQuery jẹ ile-ikawe Javascript kan ti o da lori gbolohun ọrọ: Javascript yẹ ki o jẹ igbadun si koodu. jQuery gba awọn iṣẹ ṣiṣe ti o wọpọ, ti atunwi, yọ gbogbo awọn isamisi ti ko wulo, o jẹ ki wọn kuru, yangan, ati mimọ.

jQuery ni awọn anfani akọkọ meji. Akọkọ jẹ API ti o rọrun fun ifọwọyi awọn oju-iwe wẹẹbu. Ni pato, o pese awọn ọna ti o lagbara fun yiyan awọn eroja. Kii ṣe nikan o le yan nipasẹ ID tabi kilasi, jQuery gba ọ laaye lati kọ awọn ikosile idiju, fun apẹẹrẹ, lati yan awọn eroja ti o da lori awọn ibatan wọn pẹlu awọn eroja miiran:

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

Ni akoko pupọ, ẹrọ yiyan di ile-ikawe lọtọ Sizzle.

Awọn anfani keji ti ile-ikawe ni pe o ṣe iyatọ laarin awọn aṣawakiri. Ni awọn ọdun wọnyẹn, o nira lati kọ koodu ti o le ṣiṣẹ ni igbẹkẹle ni gbogbo awọn aṣawakiri.

Aini iwọntunwọnsi tumọ si pe awọn olupilẹṣẹ nilo lati ṣe akọọlẹ fun ọpọlọpọ awọn iyatọ laarin awọn aṣawakiri ati awọn ọran eti. Ya kan wo ni koodu orisun jQuery ni kutukutu ki o si wa jQuery.browser. Eyi ni apẹẹrẹ kan:

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

Ati pe o ṣeun si jQuery, awọn olupilẹṣẹ le yi awọn aibalẹ nipa gbogbo awọn ipalara wọnyi sori awọn ejika ti ẹgbẹ ti n dagbasoke ile-ikawe naa.

Nigbamii, jQuery jẹ ki o rọrun lati ṣe awọn imọ-ẹrọ idiju diẹ sii gẹgẹbi awọn ohun idanilaraya ati Ajax. Ile-ikawe naa ti di igbẹkẹle boṣewa fun awọn oju opo wẹẹbu. Ati loni o ṣe agbara ipin nla ti Intanẹẹti. W3Techs gbagbọ pe 74% ti awọn aaye loni lo jQuery.

Iṣakoso lori idagbasoke jQuery tun ti di agbekalẹ diẹ sii. Ni ọdun 2011 ẹgbẹ naa da jQuery Board. Ati ni 2012 jQuery Board yipada si jQuery Foundation.

Ni 2015, jQuery Foundation dapọ pẹlu Dojo Foundation, lati ṣẹda JS Foundation, eyi ti lẹhinna dapọ pẹlu Node.js Foundation sinu 2019-m lati ṣẹda Ipilẹ OpenJS, laarin eyiti jQuery jẹ ọkan ninu awọn "awaridii ise agbese. "

Awọn ipo iyipada

Sibẹsibẹ, ni odun to šẹšẹ jQuery padanu gbajumo re. GitHub kuro ni ìkàwé lati frontend ti mi Aaye. Bootstrap v5 xo jQuerynitori tirẹ ni"Igbẹkẹle alabara ti o tobi julọ fun JavaScript deede"(Lọwọlọwọ 30 KB ni iwọn, ti o dinku ati idii). Orisirisi awọn aṣa ni idagbasoke wẹẹbu ti di alailagbara ipo jQuery bi ohun elo pataki.

Awọn aṣàwákiri

Fun awọn idi pupọ, awọn iyatọ aṣawakiri ati awọn idiwọn ti di diẹ pataki. Ni akọkọ, iwọntunwọnsi ti ni ilọsiwaju. Awọn olupilẹṣẹ ẹrọ aṣawakiri pataki (Apple, Google, Microsoft ati Mozilla) n ṣiṣẹ papọ lati dagbasoke ayelujara awọn ajohunše laarin ilana Web Hypertext Ohun elo Technology Ẹgbẹ Ṣiṣẹ.
Botilẹjẹpe awọn aṣawakiri tun yatọ si ara wọn ni awọn ọna pataki pupọ, awọn olutaja ni o kere ju ni ọna lati wa ati ṣẹda ibi ipamọ data ti o wọpọ dipo ogun ayeraye papọ. Nitorinaa, awọn API aṣawakiri ti ni awọn agbara tuntun. Fun apẹẹrẹ, Fa API ti o lagbara lati rọpo awọn iṣẹ Ajax lati 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);
    });

Awọn ọna ìbéèrèSelector и ìbéèrèSelectorGbogbo àdáwòkọ jQuery pickers:

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

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

Bayi o le ṣe afọwọyi awọn kilasi eroja ni lilo classlist:

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

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

Lori aaye naa O le ko nilo jQuery Eyi ni awọn ipo diẹ diẹ sii ninu eyiti koodu jQuery le rọpo pẹlu koodu abinibi. Diẹ ninu awọn Difelopa nigbagbogbo duro pẹlu jQuery nitori wọn nìkan ko mọ nipa awọn API tuntun, ṣugbọn nigbati wọn ba ṣe, wọn bẹrẹ lilo ile-ikawe kere si nigbagbogbo.

Lilo awọn ẹya ara ilu ṣe ilọsiwaju iṣẹ oju-iwe. Ọpọlọpọ awọn ipa ere idaraya lati jQuery bayi o le mu ṣiṣẹ Elo siwaju sii munadoko lilo CSS.

Idi keji ni pe awọn aṣawakiri ti ni imudojuiwọn ni iyara pupọ ju ti iṣaaju lọ. Pupọ ninu wọn lo "evergreen" isọdọtun nwon.Mirza, pẹlu awọn sile ti Apple Safari. Wọn le ṣe imudojuiwọn ni abẹlẹ laisi ilowosi olumulo ati pe wọn ko so mọ awọn imudojuiwọn OS.

Eyi tumọ si pe awọn ẹya ẹrọ aṣawakiri tuntun ati awọn atunṣe kokoro ni a pin kaakiri ni iyara, ati pe awọn olupilẹṣẹ ko ni lati duro titi di Ṣe Mo Lo yoo de ipele itẹwọgba. Wọn le ni igboya lo awọn ẹya tuntun ati awọn API lai ṣe igbasilẹ jQuery tabi polyfills.

Idi kẹta ni pe Internet Explorer n sunmọ ipo ti ko ṣe pataki. IE ti pẹ fun idagbasoke wẹẹbu ni agbaye. Awọn idun rẹ ni ibigbogbo, ati nitori IE jẹ gaba lori awọn ọdun 2000 ati pe ko lo ilana imudojuiwọn lailai, awọn ẹya agbalagba tun wọpọ.

Ni ọdun 2016, Microsoft ṣe iyara imukuro IE, dẹkun lati ṣe atilẹyin idamẹwa ati awọn ẹya iṣaaju, diwọn atilẹyin si IE 11. Ati siwaju sii, awọn olupilẹṣẹ wẹẹbu ni igbadun ti kọju ibamu IE.

Paapaa jQuery duro atilẹyin IE 8 ati ni isalẹ ti o bẹrẹ lati ẹya 2.0, ti a tẹjade ni ọdun 2013. Ati pe botilẹjẹpe ni awọn igba miiran atilẹyin IE tun nilo, fun apẹẹrẹ, lori awọn aaye agbalagba, awọn ipo wọnyi dide kere ati kere si nigbagbogbo.

Awọn ilana tuntun

Lati dide ti jQuery, ọpọlọpọ awọn ilana ti ṣẹda, pẹlu awọn oludari ode oni Idahun, angula и Wo. Wọn ni awọn anfani pataki meji lori jQuery.

Ni akọkọ, wọn jẹ ki o rọrun lati yapa wiwo olumulo sinu awọn paati. Awọn ilana jẹ apẹrẹ lati mu mimu oju-iwe ṣiṣẹ ati mimu dojuiwọn. Ati pe a maa n lo jQuery nikan fun imudojuiwọn, nlọ iṣẹ-ṣiṣe ti pese oju-iwe akọkọ si olupin naa.

Ni apa keji, React, Angular ati awọn paati Vue gba ọ laaye lati ṣe tọkọtaya HTML ni wiwọ, koodu ati paapaa CSS. Gẹgẹ bi a ṣe pin ipilẹ koodu si ọpọlọpọ awọn iṣẹ ti ara ẹni ati awọn kilasi, agbara lati pin wiwo si awọn paati atunlo jẹ ki o rọrun lati kọ ati ṣetọju awọn aaye eka.

Anfani keji ni pe awọn ilana aipẹ diẹ sii tẹle ilana asọye, ninu eyiti olupilẹṣẹ ṣe apejuwe kini wiwo yẹ ki o dabi ati fi silẹ si ilana lati ṣe gbogbo awọn ayipada pataki lati ṣaṣeyọri ohun ti o fẹ. Ọna yii jẹ ilodi si ọna pataki ti o ṣe afihan koodu jQuery.

Ni jQuery, o kọ awọn igbesẹ ni gbangba lati ṣe awọn ayipada. Ati ninu ilana asọye o sọ pe, “Ni ibamu si data yii, wiwo yẹ ki o dabi eyi.” Eyi le jẹ ki kikọ koodu laisi kokoro rọrun pupọ.

Awọn olupilẹṣẹ ti gba awọn ọna tuntun si idagbasoke oju opo wẹẹbu, eyiti o jẹ idi ti jQuery olokiki ti dinku.

Nigbawo lati lo jQuery?

Nitorina nigbawo yẹ lo jQuery?

Ti idiju ti iṣẹ akanṣe naa ba pọ si, lẹhinna o dara lati bẹrẹ pẹlu ile-ikawe miiran tabi ilana ti o fun ọ laaye lati ṣakoso ni itumo. Fun apẹẹrẹ, pin wiwo si awọn paati. Lilo jQuery lori iru awọn aaye yii le dara ni akọkọ, ṣugbọn yoo yara ja si koodu spaghetti nibiti o ko rii daju pe ajẹkù wo ni ipa lori apakan oju-iwe naa.

Mo ti wa ni iru ipo kan, nigbati gbiyanju lati ṣe eyikeyi ayipada, o kan lara bi a soro-ṣiṣe. O ko le ni idaniloju pe iwọ kii yoo fọ ohunkohun nitori awọn yiyan jQuery da lori eto HTML ti ipilẹṣẹ nipasẹ olupin naa.

Ni opin miiran ti iwọn jẹ awọn aaye ti o rọrun ti o nilo diẹ ti ibaraenisepo tabi akoonu ti o ni agbara. Emi kii yoo ṣe aiyipada si jQuery ninu awọn ọran boya, nitori pe diẹ sii wa ti o le ṣe pẹlu awọn API abinibi.

Paapa ti MO ba nilo nkan ti o lagbara diẹ sii, Emi yoo wa ile-ikawe pataki kan, fun apẹẹrẹ. àá fun Ajax tabi Animate.css fun awọn ohun idanilaraya. Eyi yoo rọrun ju ikojọpọ gbogbo jQuery fun iṣẹ ṣiṣe kekere kan.

Mo ro pe idi ti o dara julọ fun lilo jQuery ni pe o pese iṣẹ ṣiṣe okeerẹ fun opin iwaju oju opo wẹẹbu kan. Dipo kiko oniruuru awọn API abinibi tabi awọn ile-ikawe amọja, o le ka iwe jQuery nikan ki o di iṣelọpọ lẹsẹkẹsẹ.

Ọna pataki ko ṣe iwọn daradara, ṣugbọn o rọrun lati kọ ẹkọ ju ọna asọye ti awọn ile-ikawe miiran. Fun aaye ti o ni awọn agbara ti o ni opin kedere, o dara lati lo jQuery ati ṣiṣẹ ni ifọkanbalẹ: ile-ikawe ko nilo apejọ eka tabi akopọ.

Ni afikun, jQuery dara ti o ba ni igboya pe aaye rẹ kii yoo ni idiju lori akoko, ati pe ti o ko ba bikita nipa iṣẹ-ṣiṣe abinibi, eyiti yoo nilo kiko koodu diẹ sii ju jQuery.

O tun le lo ile-ikawe yii ti o ba nilo lati ṣe atilẹyin awọn ẹya agbalagba ti IE. Lẹhinna jQuery yoo ṣe iranṣẹ fun ọ daradara bi ni awọn ọjọ nigbati IE jẹ aṣawakiri olokiki julọ.

Nwa si ojo iwaju

jQuery kii yoo parẹ nigbakugba laipẹ. Arabinrin actively sese, ati ọpọlọpọ awọn olupilẹṣẹ fẹ lati lo API rẹ, paapaa ti awọn ọna abinibi ba wa. Ile-ikawe naa ti ṣe iranlọwọ fun gbogbo iran ti awọn olupilẹṣẹ ṣẹda awọn oju opo wẹẹbu ti o ṣiṣẹ lori ẹrọ aṣawakiri eyikeyi. Botilẹjẹpe o ti rọpo ni ọpọlọpọ awọn ọna nipasẹ awọn ile-ikawe tuntun, awọn ilana, ati awọn paradigimu, jQuery ti ṣe ipa rere pupọ ninu ṣiṣẹda wẹẹbu ode oni.

Ayafi ti iṣẹ ṣiṣe jQuery ba yipada ni pataki, o ṣee ṣe pe lilo ile-ikawe yoo tẹsiwaju lati laiyara ṣugbọn ni imurasilẹ kọ silẹ ni awọn ọdun diẹ to nbọ. Awọn oju opo wẹẹbu tuntun ṣọ lati kọ ni lilo awọn ilana igbalode diẹ sii lati ibẹrẹ, ati awọn ọran lilo ti o dara fun jQuery n di toje pupọ.

Diẹ ninu awọn eniyan ko fẹran oṣuwọn eyiti awọn irinṣẹ idagbasoke wẹẹbu di arugbo, ṣugbọn si mi o jẹ ẹri ti ilọsiwaju iyara. jQuery ti gba wa laaye lati ṣe ọpọlọpọ awọn nkan dara julọ. Bakan naa ni otitọ fun awọn arọpo rẹ.

orisun: www.habr.com

Fi ọrọìwòye kun