Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 12538|Svar: 1

[JavaScript] javascrip{filter}t prestandaoptimering

[Kopiera länk]
Publicerad på 2017-12-04 20:23:14 | | |
1. Respektera äganderätten till objektet
 Lägg inte till attribut till instanser eller prototyper;
 Lägg inte till metoder till instanser eller prototyper;
 Omdefiniera inte metoder som redan finns.
Det bästa sättet att göra detta är att aldrig ändra objekt som inte ägs av dig. Att äga ett objekt betyder att du har skapat det, till exempel en egen typ eller objektbokstav som du själv skapat. Arrays och dokument är uppenbarligen inte dina, de finns innan din kod körs.
2. Undvik globala variabler
Skapa högst en global variabel, vilket tillåter andra objekt och funktioner att existera i den. Titta på följande exempel:
//两个全局量——避免!!
var-namn = "Nicholas";
funktionen sayName(){
alert(namn);
}
Denna kod innehåller två globala storheter: variabelnamnet och funktionen sayName(). Faktum är att du kan skapa ett objekt som innehåller båda, som visas i följande exempel:
//一个全局量——推荐
var MyApplication = {
name: “Nicholas”,
sayName: function(){
alert(this.name);
}
};
3. Undvik att jämföra med null
 Om värdet bör vara en referenstyp, använd operatorn instanceof för att kontrollera dess konstruktör;
 Om värdet ska vara en bastyp, använd typeof för att kontrollera dess typ;
 Om du vill att objektet ska innehålla ett specifikt metodnamn, använd operatorn typof-operatorn för att säkerställa att metoden med det angivna namnet finns på objektet.
(Här rekommenderar jag min webbgrupp för front-end lärande och utbyte: 675498134, oavsett om du är nybörjare eller gud, välkomnar jag dig att komma och lära dig och kommunicera, och dela torrvaror då och då, inklusive det senaste frontend-materialet och handledningarna som jag själv har sammanställt för att ge dig, och det finns tekniska experter som förklarar frontend-kunskap live varje dag. Nybörjare och avancerade vänner är välkomna att lära sig och kommunicera tillsammans och göra framsteg tillsammans. )
4. Använd konstanter
Även om Javascrip{filter}t inte har något formellt begrepp om konstanter, är det användbart. Denna idé att separera data från applikationslogik kan förändra data utan att riskera att skapa fel. Titta på följande exempel:
var Constants = {
INVALID_VALUE_MSG: "Ogiltigt värde!",
INVALID_VALUE_URL: "/errors/invalid.php"
};
funktion validate(value){
om (!value){
alert(Constants.INVALID_VALUE_MSG);
locatio{filter}n.href = Constants.INVALID_VALUE_URL;
}
}
5. Undvik global sökning
Det viktigaste för att optimera skriptprestanda är nog att vara uppmärksam på globala uppslag. Att använda globala variabler och funktioner är definitivt dyrare än lokalt eftersom det innebär sökningar på scope-kedjan. Titta på följande funktion:
function updateUI(){
var imgs = document.getElementsByTagName("img");
för (var i=0, len=imgs.length; Jag < len; i++){
imgs[i].title = dokument.title + " bild " + i;
}
var msg = document.getElementById("msg");
msg.innerHTML = "Uppdatering slutförd.";
}
Funktionen kan se helt okej ut, men den innehåller tre referenser till det globala dokumentobjektet. Om det finns flera bilder på sidan kommer dokumentreferensen i for-loopen att utföras flera gånger eller till och med hundratals gånger, varje gång en scope chain-uppslagning utförs. Genom att skapa en lokal variabel som pekar på dokumentobjektet kan du förbättra prestandan för denna funktion genom att begränsa en global uppslagning en gång:
function updateUI(){
var doc = dokument;
var imgs = doc.getElementsByTagName("img");
för (var i=0, len=imgs.length; Jag < len; i++){
imgs[i].title = doc.title + " image " + i;
}
var msg = doc.getElementById("msg");
msg.innerHTML = "Uppdatering slutförd.";
Här placerar du först dokumentobjektet i den lokala doc-variabeln; Ersätt sedan originaldokumentet med resten av koden. Jämfört med originalversionen har den nuvarande funktionen bara en global uppslagning, vilket definitivt är snabbare.
6. Andra försiktighetsåtgärder för prestation
 Inbyggda metoder är snabbare – Använd när det är möjligt den inbyggda metoden istället för att skriva om en själv med Javascrip{filter}t. Den inbyggda metoden är skriven i ett kompilerat språk som C/C++, så den är mycket snabbare än Javascrip{filter}t. Det mest bortglömda med Javascrip{filter}t är den komplexa matematiken som kan hittas i matematiska objekt; Dessa metoder är mycket snabbare än någon annan metod skriven med Javascrip{filter}t, såsom sinus och cosinus.
 Switch-satser är snabbare – Om du har en serie komplexa if-else-satser kan du få snabbare kod genom att konvertera dem till ett enda switch-uttalande. Du kan också ytterligare förfina switch-uttalandet genom att organisera ärendebeskrivningen i ordning från mest sannolikt till minst sannolikt.
 Bitoperatorer är snabbare – När man utför matematiska operationer är bitoperationer snabbare än någon boolesk eller aritmetisk operation. Att selektivt ersätta aritmetiska operationer med bitoperationer kan avsevärt förbättra prestandan för komplexa beräkningar. Logik såsom modul, logik och summlogik kan anses ersättas med bitoperationer.

Tjog

Antal deltagare1MB+1 bidra+1 Kollaps förnuft
QWERTYU + 1 + 1 Stöd ägaren att posta ett bra inlägg, och jag kommer också att posta ett bra inlägg!

Se alla betyg





Föregående:SQL Server exporterar den specificerade datan med villkor
Nästa:Nybörjare spelar lite svart teknologi i CSS
Publicerad på 2017-12-05 09:33:13 |
lärde sig            
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com