Heim > Web-Frontend > js-Tutorial > Hauptteil

Zusammenfassung, wie JavaScript die Codeleistung verbessert

伊谢尔伦
Freigeben: 2017-07-26 13:47:32
Original
1232 Leute haben es durchsucht

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';
Nach dem Login kopieren

Code, der schneller läuft:

a += 'x'; a += 'y';
Nach dem Login kopieren


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);
Nach dem Login kopieren

Code, der schneller ausgeführt wird:

var min = a < b ? a : b; 
arr[arr.length] = val;
Nach dem Login kopieren

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);
Nach dem Login kopieren

Code, der schneller ausgeführt wird:

setInterval(doSomethingPeriodically, 1000); 
setTimeOut(doSomethingAfterFiveSeconds, 5000);
Nach dem Login kopieren

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

Tu das nicht:

var car = new Object(); 
car.color = "red"; 
car.type = "sedan"
Nach dem Login kopieren

Eine bessere Form:

var car = { 
color : "red"; 
type : "sedan" 
}
Nach dem Login kopieren

Deutlichste Zielgeschwindigkeit, Zielfernrohrkette minimieren

Ineffiziente Methode:

var url = location.href;
Nach dem Login kopieren

Eine effiziente Form:

var url = window.location.href;
Nach dem Login kopieren

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*/ 
}
Nach dem Login kopieren

Bessere Schreibweise:

function someFunction() 
{ 
var name="somename"; 
}
Nach dem Login kopieren

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]; 
} 
}
Nach dem Login kopieren

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]; 
} 
}
Nach dem Login kopieren

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;); 
} 
}
Nach dem Login kopieren

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; 
}
Nach dem Login kopieren

Bessere Verarbeitung:

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


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 
}
Nach dem Login kopieren

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 
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage