Das Skript sollte nach dem Seitenelementcode platziert werden
Egal, ob der aktuelle JavaScript-Code eingebettet oder in einer externen Linkdatei ist, das Herunterladen und Rendern des Die Seite muss anhalten und warten, bis die Skriptausführung abgeschlossen ist. Je länger der JavaScript-Ausführungsprozess dauert, desto länger wartet der Browser auf die Reaktion auf Benutzereingaben. Der Grund, warum Browser das Herunterladen und Ausführen von Skripten blockieren, liegt darin, dass das Skript möglicherweise den Namensraum der Seite oder von JavaScript ändert, was sich auf den Inhalt nachfolgender Seiten auswirkt.
Globale Suche vermeiden
function search() { //当我要使用当前页面地址和主机域名 alert(window.location.href + window.location.host); } //最好的方式是如下这样 先用一个简单变量保存起来 function search() { var location = window.location; alert(location.href + location.host); }
Typkonvertierung
般最好用”" + 1来将数字转换成字符串,虽然看起来比较丑一点,但事实上这个效率是最高的,性能上来说:
("" +) > String() > .toString() "
" var myVar = "3.14159", str = "" + myVar, // to string num=+myVar, // to number i_int = ~ ~myVar, // to integer f_float = 1 * myVar, // to float b_bool = !!myVar, /* to boolean - any string with length and any number except 0 are true */ array = [myVar]; // to array "
Mehrere Typdeklarationen
Variablen in können mit einer einzigen var-Anweisung deklariert werden. Dabei handelt es sich um eine Gruppe von Anweisungen, um die Ausführungszeit des gesamten Skripts zu verkürzen. Genau wie der obige Code ist auch das obige Codeformat ziemlich standardisiert, sodass es auf einen Blick klar ist 🎜 >
Seien Sie vorsichtig mit Abschlüssen
var frag = document.createDocumentFragment(); for (var i = 0; i < 1000; i++) { var el = document.createElement('p'); el.innerHTML = i; frag.appendChild(el); } document.body.appendChild(frag); //替换为: var frag = document.createDocumentFragment(); var pEl = document.getElementsByTagName('p')[0]; for (var i = 0; i < 1000; i++) { var el = pEl.cloneNode(false); el.innerHTML = i; frag.appendChild(el); } document.body.appendChild(frag);
Kombinieren Sie Steuerbedingungen und Steuervariablen beim Schleifen
document.getElementById('foo').onclick = function(ev) { };
Verbesserung
for ( var x = 0; x < 10; x++ ) {};
Vergleich mit Null vermeiden
var x = 9; do { } while( x-- );
Negativerkennung verkürzen
var aTest = new Array(); //替换为 var aTest = []; var aTest = new Object; //替换为 var aTest = {}; var reg = new RegExp(); //替换为 var reg = /../; //如果要创建具有一些特性的一般对象,也可以使用字面量,如下: var oFruit = new O; oFruit.color = "red"; oFruit.name = "apple"; //前面的代码可用对象字面量来改写成这样: var oFruit = { color: "red", name: "apple" };
Javascript-Objekt freigeben
随着实例化对象数量的增加,内存消耗会越来越大。所以应当及时释放对对象的引用,让GC能够回收这些内存控件。 对象:obj = null 对象属性:delete obj.myproperty 数组item:使用数组的splice方法释放数组中不用的item
巧用||和&&布尔运算符
function eventHandler(e) { if (!e) e = window.event; } //可以替换为: function eventHandler(e) { e = e || window.event; } if (myobj) { doSomething(myobj); } //可以替换为: myobj && doSomething(myobj);
switch语句相对if较快
每条语句末尾须加分号
相关推荐:
Das obige ist der detaillierte Inhalt vonTeilen Sie Beispiele für Techniken zur JS-Leistungsoptimierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!