Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassung, wie JavaScript die Codeleistung verbessert

Zusammenfassung, wie JavaScript die Codeleistung verbessert

伊谢尔伦
伊谢尔伦Original
2017-07-26 13:47:321233Durchsuche

Verwenden Sie den Berechnungsstil für die Zeichenfolgenakkumulation.

Mit der +-Operation wird eine neue Zeichenfolge im Speicher erstellt und ihr der verkettete Wert zugewiesen. Weisen Sie das Ergebnis einfach einer Variablen zu.
Um eine Verbindung der Zwischenvariablen des Ergebnisses zu vermeiden, können Sie += verwenden, um das Ergebnis direkt zuzuweisen.

Code, der langsam läuft:

a += 'x' + 'y';

Code, der schneller läuft:

a += 'x'; a += 'y';


Primäre Operationen sind schneller als Funktionsaufrufe
Sie können die Verwendung alternativer primitiver Operationen in Schleifen und Funktionen mit kritischen Leistungsanforderungen in Betracht ziehen.
Code, der langsam ausgeführt wird:

var min = Math.min(a, b); 
arr.push(val);

Code, der schneller ausgeführt wird:

var min = a < b ? a : b; 
arr[arr.length] = val;

Beim Festlegen von setTimeout() und setInterval() Pass ein Funktionsname anstelle einer Zeichenfolge

Wenn Sie eine Zeichenfolge an setTimeout() oder setInterval() übergeben, wird die Zeichenfolge langsam ausgewertet.
Verwenden Sie stattdessen einen anonymen Funktions-Wrapper, damit er zur Kompilierungszeit interpretiert und optimiert werden kann.

Code, der langsam ausgeführt wird:

setInterval(&#39;doSomethingPeriodically()&#39;, 1000); 
setTimeOut(&#39;doSomethingAfterFiveSeconds()&#39;, 5000);

Code, der schneller ausgeführt wird:

setInterval(doSomethingPeriodically, 1000); 
setTimeOut(doSomethingAfterFiveSeconds, 5000);

Vermeiden Sie die Verwendung von unerwünschtem DOM in Objekten. Zitat

Tu das nicht:

var car = new Object(); 
car.color = "red"; 
car.type = "sedan"

Eine bessere Form:

var car = { 
color : "red"; 
type : "sedan" 
}

Deutlichste Zielgeschwindigkeit, Zielfernrohrkette minimieren

Ineffiziente Methode:

var url = location.href;

Eine effiziente Form:

var url = window.location.href;

Versuchen Sie es. Verwenden Sie weniger Kommentare in Skripten und vermeiden Sie die Verwendung langer Variablennamen
Halten Sie die Anzahl der Kommentare so gering wie möglich oder vermeiden Sie deren Verwendung, insbesondere in Funktionen, Schleifen und Arrays.
Kommentare verlangsamen die Skriptausführung unnötig und erhöhen die Dateigröße. Zum Beispiel:

Nicht empfohlene Form:

function someFunction() 
{ 
var person_full_name="somename"; /* stores the full name*/ 
}

Bessere Schreibweise:

function someFunction() 
{ 
var name="somename"; 
}

Außerhalb des aktuellen Bereichs speichernde Anwendungsvariablen
Wenn eine Funktion im Ausführungskontext ausgeführt wird, wird ein aktives Objekt, das alle lokalen Variablen enthält, an den Anfang der Kontextkette verschoben.
In der Bereichskette sind die langsamsten eindeutig identifizierte Bezeichner, was bedeutet, dass lokale Variablen die schnellsten sind. Das Lesen und Schreiben häufig verwendeter externer Variablen wird deutlich schneller erfolgen. Dies macht sich insbesondere bei globalen Variablen und anderen tiefen Identifikatorsuchen bemerkbar.
In ähnlicher Weise wird auf Variablen im aktuellen Bereich (var myVar) schneller zugegriffen als auf Objekte wie Eigenschaften (this.myVar).

Code, der langsam ausgeführt wird:

function doSomething(text) { 
var ps = document.getElementsByTagName(&#39;p&#39;), 
text = [&#39;foo&#39;, /* ... n ... */, &#39;bar&#39;]; 
for (var i = 0, l = ps.length; i < l; i++) { 
ps[i].innerHTML = text[i]; 
} 
}

Code, der schneller ausgeführt wird:

function doSomethingFaster(text) { 
var doc = document, 
ps = doc.getElementsByTagName(&#39;p&#39;), 
text = [&#39;foo&#39;, /* ... n ... */, &#39;bar&#39;]; 
for (var i = 0, l = ps.length; i < l; i++) { 
ps[i].innerHTML = text[i]; 
} 
}

Wenn Sie auf ein Element wie „head“ zugreifen müssen) In einer großen Schleife ist es schneller, einen lokalen DOM-Zugriff zu verwenden (wie im Beispiel get).
Code, der schneller ausgeführt wird:

function doSomethingElseFaster() { 
var get = document.getElementsByTagName; 
for (var i = 0, i < 100000; i++) { 
get(&#39;head&#39;); 
} 
}

Verwenden Sie Variablen, um Werte zwischenzuspeichern.
Verwenden Sie lokale Variablen, um Werte zwischenzuspeichern, wenn Sie wiederholt arbeiten.
Die folgenden Beispiele veranschaulichen die weitreichenden Auswirkungen der Speicherung von Werten in lokalen Variablen.

Beispiel 1. Verwenden Sie Variablen, um mathematische Funktionen vor der Berechnungsausführung im Schleifenkörper zu speichern
Falsche Methode:

var d=35; 
for (var i=0; i<1000; i++) { 
y += Math.sin(d)*10; 
}

Bessere Verarbeitung:

var d = 55; 
var math_sind = Math.sin(d)*10; 
for (var i=0; i<1000; i++) { 
y += math_sind; 
}


Beispiel 2. Speichern der Länge des Arrays in einer Schleife
Schlechte Handhabung:
Die Länge des Arrays wird jedes Mal neu berechnet

for (var i = 0; i < arr.length; i++) { 
// do something 
}

Bessere Verbesserung:
Eine bessere Eine Möglichkeit besteht darin, die Länge des Arrays zu speichern

for (var i = 0, len = arr.length; i < len; i++) { 
// do something 
}

Wenn es einmal gemacht wurde, müssen wir im Allgemeinen nicht wiederholt unnötige Arbeit leisten. Wenn beispielsweise der Wert eines berechneten Ausdrucks in einem Bereich oder einer Funktion mehrfach verwendet wird, ermöglicht das Speichern in einer Variablen die mehrfache Verwendung. Andernfalls würden wir es übertreiben, indem wir eine Variable deklarieren und ihr einen Wert zuweisen, der nur gilt einmal. Bitte beachten Sie diese.


Das obige ist der detaillierte Inhalt vonZusammenfassung, wie JavaScript die Codeleistung verbessert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn