View Single Post
Limited edition
Moff's Avatar
Sitat av etse Vis innlegg
Angående jQuery vil jeg komme med en brannfakkel: men det er veldig 2010. I dag finnes det egentlig nesten ingen gode grunner til å bruke jQuery - det er et bloated rammeverk som har utgått på dato og for lengst burde bli glemt.
Vis hele sitatet...
Njæææ, jeg er ikke enig. Det er sant at JQuery hadde performance-problemer da smarttelefoner fortsatt var en ny greie, men nå i dag, hvor mannen i gata har nærmest fri bruk av data og en lynrask multi-core-prosessor i telefonen sin, så er JQuery helt innafor. Først og fremst, så er det viktig å huske at nærsagt ingen trenger å bruke data på å laste ned JQuery i dag, hvis man bruker et veletablert CDN. Da gjenstår kun performance-argumentet, og for de mer avanserte operasjonene, så er det så utrolig behagelig å jobbe med JQuery sammenlignet med native JS at jeg fortsatt synes det er verdt det - selv om det er tregere. Ajax-kode, for eksempel, er et helvete hvis du ikke skal lage noe rammeverk for det. Og hvis du uansett lager deg et rammeverk for å gjøre ting lettere - hvorfor ikke bare bruke JQuery, som brukeren mest sannsynlig allerede har cachet likevel?

For de som ikke snakker JQuery, her er et praktisk eksempel på forskjellen mellom selectors:

Kode

// JQuery (samme metode for alle typer selectors)
$("#something")

// Native
document.getElementById("something") // ID-selector
document.getElementsByClassName("something") // Klasse-selector
document.querySelectorAll("[data-something='something']") // CSS-selector
document.getElementsByTagName("div") // Element-selector
Jeg tok en kjapp performance-test for å gi et visst inntrykk av hvor stor (eller liten) forskjellen er:

Kode

// 10 000 operasjoner
getElementById - 1.40625 ms
getElementsByClassName - 2.126953125 ms
querySelectorAll - 10.977783203125 ms
getElementsByTagName - 1.60986328125 ms

$(id) - 8.24169921875 ms
$(class) - 20.3828125 ms
$(attribute) - 28.355712890625 ms
$(element) - 16.838134765625 ms
For 10 000 operasjoner kom native JS ut 57,54 ms raskere, og for 1 operasjon var forskjellen 0,51 ms (tusendels sekund).

Det er smak og behag; jeg skriver mye JavaScript, og jeg kan ikke fordra Angular eller React. De er alt for intrusive. Jeg synes native er veldig uoversiktlig, mye rett og slett fordi funksjonsnavnene er så forbasket lange og ulogiske. JQuery er kanskje ikke så raskt som det burde være, men om jeg sparer flere dager med utvikling per år fordi koden er ren og pen, mens hver bruker taper 0,5 millisekunder av sitt liv ved hver page load - da er valget lett for meg. Med det sagt, så bruker jeg altså ikke JQuery som en erstattning for absolutt alle funksjoner bare for å bruke JQuery - der native er lett og gir mening, så bruker jeg native.

Det er litt det samme som med PHP; det var en periode hvor PHP var ansett for å være poop det også, men nå i versjon 7, så er det faktisk helt greit igjen. JQuery har ikke tatt noen grep for å fikse seg selv med tanke på performance, men den raske utviklingen av mobile enheter med gode prosessorer gjør at problemet ikke er... vel, problematisk lengre.