Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 12538|Svare: 1

[JavaScript] javascrip{filter}t ytelsesoptimalisering

[Kopier lenke]
Publisert på 04.12.2017 20:23:14 | | |
1. Respektere eierskapet til objektet
 Ikke legg til attributter til instanser eller prototyper;
 Ikke legg til metoder i instanser eller prototyper;
 Ikke omdefiner metoder som allerede eksisterer.
Den beste måten å gjøre dette på er å aldri endre objekter som ikke tilhører deg. Å eie et objekt betyr at du har laget det, for eksempel en egendefinert type eller objektbokstav som du har laget selv. Arrays og dokumenter er åpenbart ikke dine, de eksisterer før koden din kjøres.
2. Unngå globale variabler
Lag en global variabel på det meste, slik at andre objekter og funksjoner kan eksistere i den. Se på følgende eksempler:
//两个全局量——避免!!
var name = "Nicholas";
funksjonen sayName(){
alert(navn);
}
Denne koden inneholder to globale størrelser: variabelnavnet og funksjonen sayName(). Faktisk kan du lage et objekt som inneholder begge deler, som vist i følgende eksempel:
//一个全局量——推荐
var MyApplication = {
name: “Nicholas”,
sayName: function(){
alert(this.name);
}
};
3. Unngå å sammenligne med null
 Hvis verdien skal være en referansetype, bruk operatoren instans for å sjekke dens konstruktør;
 Hvis verdien skal være en basistype, bruk typeof for å sjekke typen;
 Hvis du vil at objektet skal inneholde et spesifikt metodenavn, bruk typeoperatoren for å sikre at metoden med det angitte navnet finnes på objektet.
(Her anbefaler jeg min nettbaserte front-end lærings- og utvekslingsgruppe: 675498134, enten du er nybegynner eller gud, ønsker jeg deg velkommen til å komme og lære og kommunisere, og dele tørrvarer fra tid til annen, inkludert de nyeste front-end-materialene og veiledningene jeg selv har samlet for å gi deg, og det finnes tekniske eksperter som forklarer front-end-kunnskap live hver dag. Nybegynnere og avanserte venner er velkomne til å lære, kommunisere sammen og gjøre fremskritt sammen. )
4. Bruk konstanter
Selv om Javascrip{filter}t ikke har noe formelt begrep om konstanter, er det nyttig. Denne ideen om å skille data fra applikasjonslogikk kan endre data uten å risikere å introdusere feil. Se på følgende eksempler:
var Constants = {
INVALID_VALUE_MSG: "Ugyldig verdi!",
INVALID_VALUE_URL: "/errors/invalid.php"
};
funksjon validate(value){
hvis (!value){
alert(Constants.INVALID_VALUE_MSG);
locatio{filter}n.href = Constants.INVALID_VALUE_URL;
}
}
5. Unngå globalt søk
Sannsynligvis det viktigste for å optimalisere manusytelse er å være oppmerksom på globale oppslag. Å bruke globale variabler og funksjoner er definitivt dyrere enn lokalt fordi det innebærer søk i scope-kjeden. Se på følgende funksjon:
function updateUI(){
var imgs = document.getElementsByTagName("img");
for (var i=0, len=imgs.length; Jeg < len; i++){
imgs[i].tittel = dokument.tittel + " bilde " + i;
}
var msg = document.getElementById("msg");
msg.innerHTML = "Oppdatering fullført.";
}
Funksjonen kan se helt fin ut, men den inneholder tre referanser til det globale dokumentobjektet. Hvis det er flere bilder på siden, vil dokumentreferansen i for-løkken bli utført flere ganger eller til og med hundrevis av ganger, hver gang vil et scope chain-oppslag bli utført. Ved å lage en lokal variabel som peker til dokumentobjektet, kan du forbedre ytelsen til denne funksjonen ved å begrense et globalt oppslag én gang:
function updateUI(){
var doc = dokument;
var imgs = doc.getElementsByTagName("img");
for (var i=0, len=imgs.length; Jeg < len; i++){
imgs[i].title = doc.title + " bilde " + i;
}
var msg = doc.getElementById("msg");
msg.innerHTML = "Oppdatering fullført.";
Her plasserer du først dokumentobjektet i den lokale doc-variabelen; Deretter erstatter du originaldokumentet med resten av koden. Sammenlignet med originalversjonen har den nåværende funksjonen bare ett globalt oppslag, som definitivt er raskere.
6. Andre forholdsregler for prestasjon
 Native metoder er raskere - Bruk den native metoden i stedet for å skrive om en selv med Javascrip{filter}t når det er mulig. Den native metoden er skrevet i et kompilert språk som C/C++, så den er mye raskere enn Javascrip{filter}t. Det mest glemte med Javascrip{filter}t er den komplekse matematikken som finnes i Math-objekter; Disse metodene er mye raskere enn noen annen metode skrevet med Javascrip{filter}t, som sinus og cosinus.
 Switch-setninger er raskere – Hvis du har en serie komplekse if-else-setninger, kan du få raskere kode ved å konvertere dem til én switch-setning. Du kan også videreutvikle bytteuttalelsen ved å organisere saksbeskrivelsen i rekkefølge fra mest sannsynlig til minst sannsynlig.
 Bitoperatorer er raskere – Når man utfører matematiske operasjoner, er bitoperasjoner raskere enn noen boolske eller aritmetiske operasjoner. Selektiv erstatning av aritmetiske operasjoner med bitoperasjoner kan i stor grad forbedre ytelsen til komplekse beregninger. Logikk som modulus, logikk og sumlogikk kan anses å være erstattet med bitoperasjoner.

Score

Antall deltakere1MB+1 bidra+1 Sammenbrudd grunn
QWERTYU + 1 + 1 Støtt eieren til å poste et godt innlegg, og jeg vil også poste et godt innlegg!

Se alle vurderinger





Foregående:SQL Server eksporterer de spesifiserte dataene med betingelser
Neste:Nybegynnere spiller litt svart teknologi i CSS
Publisert på 05.12.2017 09:33:13 |
Lærte            
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com