Optimierungsprobleme im Zusammenhang mit Javascript-Programmen
Dies sind einige meiner Erfahrungen beim Schreiben von Code. Es gibt keine Reihenfolge, in der ich sie geschrieben habe.
1 Vermeiden Sie die Verwendung globaler Variablen.
Zum Beispiel: 🎜> function test(){
var s = document.getElementById('aaa');
s.innerHTML = document.body.clientHeight;
}
Wechseln Sie zu
function test( ){
var d = document,
s = d.getElementById('aaa');
s.innerHTML = d.body.clientHeight;
}
Der Vorteil lokaler Variablen besteht darin, die Suche ohne Bereichskette zu reduzieren.
Ich empfehle die Verwendung lokaler Variablen, wenn es zwei Referenzen gibt.
2. Vermeiden Sie die Verwendung mit (ich denke, jeder auf der Welt weiß das).
Ich verstehe, dass der Grund dafür ist, dass mit ein eigener Bereich erstellt wird, wodurch die ursprüngliche Bereichskette verlängert wird und der im With-Block ausgeführte Code langsamer wird. Es scheint, dass der Code beim Schreiben gespeichert wird, aber tatsächlich wird der Zugriff immer länger umständlich und die Leistung nimmt ab.
Beispiel
Verwendung mit
clientHeight = '200px';
>}
Tatsächlich können Sie
Function Test () {
var ds = document.body;
ds.clientheight = '200px';
ds.Clientwidth = '200px'
Länge einmal 🎜> Meine Methode wird nicht einmal verwendet
for(var i=0,ci;ci=as[i++];){}Wenn nodeList abgeschlossen ist, sind die
-Vorteile für FALSE vorbei und die Länge wird nicht berechnet . Es speichert den Wert im Zyklus und der Code ist noch kleiner im Urteil
(Hinweis: Diese Methode wird in der Knotenliste verwendet. Wenn Sie sie in einem Array verwenden, wird es Probleme geben. Es gibt eine 0 letzteres null oder etwas im Array)
4. Benutze nicht so viele VAR, man fügt ein Komma hinzu,
var a = 1;
var b = 1;
var c =1;
Langer Code, schlechte Leistung
Aufgeteilt in
var a=1,
b=1,
c=1 ;
5.innerHTML ist das Beste Wahl
Beim Hinzufügen von Elementen zu Elementen ist es am besten, innerHTML zu verwenden
RemoveChild von 6.ie ist nicht einfach zu verwenden
Im Allgemeinen löschen wir ein Element Wird verwendet
elm.removeChild(subElm)
Dies ist unter IE nicht einfach zu verwenden, da dadurch das Element nur vom Dom-Baum getrennt, aber nicht tatsächlich gelöscht wird. Es wird nun
Um den isolierten Knoten tatsächlich zu löschen, können Sie dies tun
var ryc = document.createElement('div');
div.appendChild(subElm);
div.innerHTML = '';
div = null;
Auf diese Weise können Sie den Effekt mit Ausnahme von IE erzielen.
7 Beim Definieren von Ereignissen müssen Sie nicht jedes einzelne binden, sondern binden Sie sie einfach an ihr übergeordnetes Element.
Beispiel: