Hjemmeside » Coding » Hva er nytt i jQuery 3 - 10 kuleste funksjoner

    Hva er nytt i jQuery 3 - 10 kuleste funksjoner

    jQuery 3.0, den nye store utgivelsen av jQuery ble endelig utgitt. Nettutvikler-fellesskapet ventet på dette viktige trinnet siden oktober 2014, da jQuery-teamet begynte å jobbe med den nye hovedversjonen frem til nå juni 2016 da endelig utgivelse er ute.

    Utgivelsesnotatet lover a slankere og raskere jQuery, med bakoverkompatibilitet i tankene. I dette innlegget ser vi på noen av de nye funksjonene i jQuery 3.0 for å gi deg en oversikt over hvordan det endrer JavaScript-landskapet.

    Hvor skal jeg starte

    Hvis du vil laste ned jQuery 3.0 for å eksperimentere for deg selv, gå rett til nedlastingssiden. Det er også verdt å ta en titt på oppgraderingsguiden, eller kildekoden.

    Hvis du vil teste hvordan ditt eksisterende prosjekt fungerer med jQuery 3.0, kan du prøve å jQuery Migrere plugin som identifiserer kompatibilitetsproblemer i koden din. Du kan også ta en titt på fremtidige milepæler.

    Denne artikkelen dekker ikke alle De nye funksjonene til jQuery 3.0 er bare de mest interessante: bedre kodekvalitet, integrering av nye ECMAScript 6-funksjoner, en ny API for animasjoner, en ny metode for å rømme strenger, økt SVG-støtte, forbedret async-tilbakeringinger, bedre kompatibilitet med lydhørsteder , og økt sikkerhet.

    1. Gamle IE-løsninger ble fjernet

    Et av hovedmålene for den nye store utgivelsen var å gjøre det raskere og slankere, derfor de gamle hackene og løsningene knyttet til IE9- ble fjernet. Dette betyr at hvis du vil eller trenger å støtte IE6-8, må du fortsette å bruke det siste 1.12 slipp ut, som til og med 2.x serien har ikke full støtte for eldre Internet Explorer (IE9-). Sjekk ut notatene om nettleserstøtte i dokumentene.

    jQuery Docs: Nettleserstøtte

    Legg merke til at det også finnes mange utdaterte funksjoner i jQuery 3. En stor mangel på oppgraderingsguiden er at de utdaterte funksjonene - fra juni 2016 - ikke er gruppert, så hvis du er interessert i dem, må du se dem opp med nettleserens søkeverktøy ( Ctrl + F).

    jQuery Upgrade Guide

    2. jQuery 3.0 kjører i streng modus

    Som de fleste nettlesere støttet av jQuery 3 støtter strenge modus, har den nye store utgivelsen blitt bygget med dette direktivet i tankene.

    Selv om jQuery 3 er skrevet i streng modus, er det viktig å vite det Koden din kreves ikke å kjøre i streng modus, så du trenger ikke å omskrive Din eksisterende jQuery-kode hvis du vil overføre til jQuery 3. Strenge og ikke-streng modus JavaScript kan gjerne eksistere sammen.

    Det er ett unntak: noen versjoner av ASP.NET som - på grunn av den strenge modusen - er ikke kompatibel med jQuery 3. Hvis du er involvert i ASP.NET, kan du se på detaljene her i dokumentene.

    3. For ... av Loops er introdusert

    jQuery 3 støtter for ... av setningen, en ny type til loop, introdusert i ECMAScript 6. Det gir en mer grei måte å loop over iterable objekter, for eksempel Arrays, Maps og Sets.

    I jQuery, den for ... av loop kan erstatte den tidligere $ .each (...) syntaks, og kan gjøre det lettere å bla gjennom elementene i en jQuery-samling.

    Kodeeksempel fra oppgraderingsveiledningen

    Legg merke til at for ... av sløyfe vilje bare arbeid enten i et miljø som støtter ECMAScript 6, eller hvis du bruk en JavaScript-kompilator slik som Babel.

    4. Animasjoner Fikk en ny API

    jQuery 3 bruker requestAnimationFrame () API for å utføre animasjoner, lage animasjoner Kjør jevnere og raskere. Den nye API-en brukes kun i nettlesere som støtter den. for eldre nettlesere (dvs. IE9) jQuery bruker sin tidligere API som en tilbakebetaling metode for å vise animasjoner.

    RequestAnimationFrame har vært ute en stund, hvis du er interessert i hva den vet eller hvorfor du bør bruke den, har CSS Tricks et godt innlegg om det.

    www.caniuse.com

    5. Ny metode for å unnslippe strenger med spesiell betydning

    Den nye jQuery.escapeSelector () Metoden lar deg flykte strenger eller tegn som mener noe annet i CSS for å kunne bruk den i en jQuery-velg; uten å rømme JavaScript-tolken kan ikke forstå det på riktig måte.

    Dokumentene hjelper oss med å forstå denne metoden bedre med følgende eksempel:

    For eksempel, hvis et element på siden har et ID på “A B C D E F” det kan ikke velges med $ ("# abc.def") fordi väljeren blir analysert som “et element med id 'Abc' som også har en klasse 'Def'. Det kan imidlertid velges med $ ("#" + $ .escapeSelector ("abc.def")).”

    Jeg er ikke sikker på hvor ofte et slikt tilfelle skjer, men hvis du støter på et problem som dette, har du nå en enkel måte å raskt fikse det på.

    6. Klasse Manipuleringsmetoder Støtte SVG

    Dessverre, jQuery 3 fortsatt støtter ikke SVG fullt ut, men jQuery-metodene som manipulerer CSS-klassenavn, for eksempel .addClass () og .hasClass (), Nå kan det brukes til målrett SVG-dokumenter også. Dette betyr at du kan endre (legge til, fjerne, bytte) eller finne klasser med jQuery i skalerbar vektorgrafik, så stil klassene med CSS.

    7. Utsatte objekter er nå kompatible med JS-løfter

    JavaScript løfter - objekter brukt for asynkron beregninger - har blitt standardisert i ECMAScript 6; deres oppførsel og egenskaper er spesifisert i løftene / a + -standardene.

    I jQuery 3, Utsatte objekter har blitt gjort kompatible med de nye Promises / A + -standardene. Utsatt er kjedelige gjenstander som gjør det mulig å opprette tilbakeringingskøer.

    Den nye funksjonen endres hvordan asynkrone tilbakeringingsfunksjoner utføres; Promises la utviklere skrive asynkron kode som er nærmere logisk til synkron kode.

    Se kodeeksempler fra oppgraderingsveiledningen eller ta en titt på denne flotte Scotch.io-veiledningen om grunnleggende JavaScript-løfter.

    8. jQuery.when () tolker flere argumenter annerledes

    De $ .Når () Metoden gir en måte å utføre tilbakeringingsfunksjoner. Det er en del av jQuery siden versjon 1.5. Det er en fleksibel metode; det fungerer også med null argumenter, og det kan akseptere en eller flere objekter som argumenter også.

    jQuery 3 endrer måten hvordan argumenter for $ .Når () tolkes når de inneholder $ .Og () metode som du kan sende videre tilbakeringinger som argumenter til $ .Når () metode.

    api.jquery.com

    I jQuery 3, hvis du legger til et inngangsargument med deretter() metode til $ .Når (), argumentet vil være tolket som en løfte-kompatibel "thenable".

    Dette betyr at $ .Når Metoden vil kunne aksepter et boarder utvalg av innganger, som for eksempel ES6-løfter og Bluebird-løfter, som gjør det mulig å skrive mer sofistikerte asynkrone tilbakekallinger.

    9. Ny Vis / Skjul Logikk

    For å øke kompatibilitet med responsiv design, koden er relatert til viser og gjemmer elementer har blitt oppdatert i jQuery 3.

    Fra nå av, den .vise fram(), .gjemme seg(), og .veksle() metoder vil fokusere på inline stiler, i stedet for beregnede stiler, på denne måten vil de bedre respekt stilark endringer.

    Den nye koden respekterer vise verdier av stilark når det er mulig, noe som betyr at CSS-regler kan dynamisk endring på hendelser som for eksempel omformering av enheten og vinduets størrelse.

    Dokumenterne hevder at det viktigste resultatet vil være:

    "Som et resultat er frakoblede elementer ikke lenger betraktet som skjult med mindre de har inline skjerm: ingen;, og derfor .veksle() vil ikke lenger skille dem fra fra tilkoblede elementer fra jQuery 3.0. "

    Hvis du vil forstå det bedre Resultatene av det nye showet / skjullogikken, her er en interessant Github diskusjon om det.

    jQuery-utviklere publiserte også et Google Docs-tabell om hvordan den nye oppførselen vil fungere i forskjellige brukstilfeller.

    10. Ekstra beskyttelse mot XSS-anfall

    jQuery 3 lagt til et ekstra sikkerhetslag mot XSS-angrep ved å kreve at utviklere spesifiserer dataType: "script" i alternativene til $ .Ajax () og $ .Få () fremgangsmåter.

    Med andre ord, hvis du vil utføre domeneskriptforespørsler på tvers av domener, vil du må deklarere dette i innstillingene av disse metodene.

    Slideshare av Andrew Kerr: Cross-site Scripting (lysbilde 17)

    Ifølge dokumentene er det nye kravet nyttig når et "eksternt nettsted leverer ikke-skript innhold men senere bestemmer seg for tjene et skript som har ondsinnet hensikt". Endringen påvirker ikke $ .GetScript () metode, som den setter dataType: "script" alternativet eksplisitt.