jQuery mod alle: en benchmark med 5 browser
Onsdag, September 17, 2008
Et godt bygherren har ikke noget problem at skifte fra et programmeringssprog til et andet. Valget at fokusere på et bestemt sprog, rammer og udvikling af miljøet, er dikteret mere af tilgængeligheden af tid og den type arbejde, der finder sted. Men en vigtig faktor, der kan påvirke valget af "ramme" som er den sympati eller den sygdom, som kan modne i tidens løb.
Specifikt, jeg ønskede at analysere nogle - ikke alle - Javascript rammer til rådighed i dag, fordi "tilrådes" for at tage et kig især jQuery.
Skaberne af mootools (en af de mest populære Javascript ramme) har stillet til rådighed et værktøj til at udføre en test af hastighed og gyldigheden af fem kendte Javascript rammer: Slickspeed. Denne test, hvis resultater ikke rabat på alle, er det vigtigt, som det rammer client-side JavaScript, som er udført af vores browser. Det er netop af denne grund, at nogle finde Safari hurtigere end Internet Explorer eller Google Chrome hurtigere end Firefox. Men det afhænger ofte af, hvilken type side du kigger på. I virkeligheden kan meget vel ske, at et bestemt websted er virkelig mere "fast" når den vises i Safari, men dette betyder ikke, at alle websteder vil blive hurtigere med Safari! Naturligvis denne diskurs er gyldig for enhver anden browser.
Benchmark
I tests, jeg har gjort med Slickspeed sammenligning jeg lavede browseren tilgængelig på min maskine (Windows Vista Utilmate 64bit - Intel Core 2 Quad til 2,4 GHz med 8 GB RAM).
Desværre er testen ikke var i stand til at køre med Internet Explorer 7, som den blokerede for biler, selv gå ud af skalaen med resultaterne! Endnu en gang tillykke Microsoft.
Jeg crercato at opretholde samme status af PC, mens den kører de test, der åbner browseren individuelt og ikke sende andre processer kører.
Bemærk: Hvis du har lyst, du gøre et eller flere af disse test, kan du kommentere dette indlæg i tilfælde af "nysgerrige" og forskellige resultater.

Google Chrome var virkelig hurtig, med en værdi på 68 (gennemsnit) i testen med jQuery. Den langsommere, var dog Flock trods kommer fra samme "mor" Mozilla. Dette dårlige resultat for Flock er virkelig underligt givet sin opskaering sociale netværk, fordi det er det sociale netværk Web 2.0 til at udnytte mange af Javascript ramme til rådighed, således at give en oplevelse af navigation og interaktion virkelig nyskabende.
En overraskelse beat Firefox og Opera har også en masse ', får endda en 74 i Dojo! Firefox og Safari, alt taget i betragtning, er de samme, med Safari hurtigere i tests med Mootools og jQuery.
Hvilke rammer for at vælge?
Du kan badiamo at teste hurtighed i udførelsen, og at vi ikke interesserer os for den størrelse i Kbytes af de samme rammer, er svaret kunne være "hvad der er til dig" eller, hvis du foretrækker det, "hvad du kender bedst, eller er mere harmonisk med din stil af programmeringen. "
I sidste ende er disse rammer vil se lidt »alle (se anvendelse af $ for eksempel), på trods af nogle vigtige forskelle, der kan springe i øjnene af en ekspert eller virkelig skubbet brug af en særlig biblioteket. I princippet er faktisk alt, hvad der kan gøres med jQuery, for eksempel, kan du gøre godt med mootools eller prototype! Hvis jQuery har en meget kompakt syntaks, som alle metoder altid returnere jQuery objekt grundlag, hvilket skaber endeløse filer af oggetto.metodo().metodo().metodo()... er ikke sagt, at det er på alle omkostninger, en styrke, især for dem, der bliver nødt til at debug!
Biblioteker gerne prototype.js måske skyldige i mangel af grafiske effekter, selv enkle, tvinger bygherren til at gennemføre som en spinoff scriptaculous.js, tungere og langt fra biblioteket første valg.
Et eksempel
Netop denne grund, for eksempel, har ført mig til at erstatte koblet prototype / scriptaculous med jQuery at skabe interaktive paneler / animerede her i indholdsoversigten i undolog.com. Faktisk bruger Google API til at importere biblioteket, er spild indlæse hele biblioteket til scriptaculous slideDown og slideUp. For information og et godt eksempel, her er, hvordan den Javascript-kode sammen med prototype / scriptaculous:
- / / Prototype / scriptaculous
- ) . each ( $ $ ( 'H2.dropdown «). Hver (
- element ) { funktion (element) (
- = "pointer" ; element. stil. markøren = "pointeren";
- 'click' , element. observere ( 'klik',
- event ) { funktion (begivenhed) (
- this . next ( ) . style . display == "" ) new Effect. BlindUp ( this . next ( ) , { duration:. 5 } ) ; if (this. næste (). stil. display == "") nye Effect. BlindUp (this. næste (), (varighed:. 5));
- Effect. BlindDown ( this . next ( ) , { duration:. 3 } ) ; Påvirkning andet nyt. BlindDown (this. næste (), (varighed:.) 3);
- event ) ; Begivenhed. Stop (begivenhed);
- )
- )
- )
- );
og det er nu med jQuery:
- / / JQuery
- ) . each ( $ ( 'H2.dropdown «). Hver (
- i ) { funktion (I) (
- ) . css ( 'cursor' , 'pointer' ) . click ( $ (Denne). CSS ( 'cursor', 'pointer'). Klik på (
- funktion () (
- $ ( this ) . next ( ) . is ( ':hidden' ) ) $ ( this ) . next ( ) . slideDown ( ) ; else $ ( this ) . next ( ) . slideUp ( ) ; if ($ (denne). næste (). er ( ': skjult')) $ (denne). næste (). slideDown (); ellers $ (denne). næste (). slideUp ();
- )
- );
- )
- );
Alt i alt, et nærmere kig, jeg tror ikke, der er meget forskel! Men som jeg sagde før ... Spørgsmålet er "også" personlige smag.





















