JS optimering

Tags:    html css

Hej.. :)

Helt simpelt.. Hvad gør i for at optimere jeres javascripts?

Jeg gør selv brug af så korte variabel-navn som muligt, bruger do-while loops, formindsker antallet af dot lookups (eller hvad i nu kalder dem, f.eks. document.body.bla.bla.bla ;)) og andre så at sige åbenlyse ting - men er der nogle andre metoder til at gå ind og optimere hvor hurtigt et script kan afvikles?



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Jeg gør ca det modsatte. Jeg bruger så sigende variabelnavne som muligt, og opbygger koden så logsik som muligt, hvor jeg putter forskellige delelementer ind i forskellige funktioner. På den måde er det nemmere at overskue, hvor man gør noget, som er unødvendigt, og som derfor kan fjernes.



Guideline for mange sprog:

- Optimer loops, dvs. find en bedre algorithme. Begræns så vidt muligt det arbejde der foregår inde i loopsne.

- Minimer antallet af ens udregninger eller lookups. Hvis du f.eks. skal bruge udregningen (7*X)+5*9-2, så reducer den udregning så +5*9-2 delen er gemt i Y og brug så (7*X)+Y

- Hvis en variabel kan undværes, så lav den ikke. Hvis du skal foretage en udregning én gang og den kun skal bruges én gang af programmet, så lav ikke en variabel.

- Sørg for at det der højst sandsynligt sker kommer før det der sker mindre ofte i din if...else...then sætninger(Ved ikke hvad det hedder i JS).

- Switch er bedre end if...else...then hvis du har en god slat muligheder.

- Kør flere ting i hver iterering af dine loops, det er det man kalder loop unrolling. Det kunne være at udføre den samme udregning tre gange per itereringen istedet for kun én. Det har den fordel at dit udtryk for dit for-loop ikke skal evalureres så mange gange.

- Brug loops omvendt hvis du kan. Tæl oppefra og ned. Er meget hurtigere fordi det er MEGET hurtigere at sammenligne med 0 end det er at sammenligne med andre tal.

Det var lige en god slat.

Lige en sidenote, do..while lykker er IKKE nødvendigvis hurtigere end for lykker, når du arbejder med Javascript. Hvorfor ved jeg ikke præcist, men sådan er det i de tests jeg har set.



hvis du tit bruger document.getElement(...).something på det samme element så gem document.getElement(...) i en variable.


udover det så taler vi om javascript de plejer jo som regel at være så små at optimering af dem hvis overhovedet muligt nok snarest er et tidsspilde.

Det her er ikke optimering men kod til Firefox eller Mozilla. Hvis du koder til IE er sandsynligheden for at andre browsere ikke kan forstå det større.



Tak for rådene.. :)

Jeg er i gang med et temmeligt omfangsrigt script, så jeg forsøger at optimere det i videst mulig udstrækning. Ellers går jeg generelt heller ikke så meget op i javascript-optimering.

Ang. Mozilla/Firefox vs. IE koder jeg i FF først hvorefter jeg tilpasser så det virker i Firefox/mozilla, internet explorer og safari.

Hvis i andre end jesper er interesserede i points så smid lige et svar... jeg lukker her i den nærmeste frem tid ;)



Indlæg senest redigeret d. 28.11.2006 21:59 af Bruger #4575
t