In JS muss ein Speicher nur einmal ausgeführt werden, z. B. die Erkennung vom Browser-Typ ist die am häufigsten verwendete Funktion, da wir bei Verwendung von AJAX den integrierten XHR des Browsers erkennen müssen. Wir können den Typ während der ersten Erkennung aufzeichnen, und in Zukunft müssen wir den Browsertyp bei Verwendung von AJAX nicht mehr erkennen. Auch wenn es nur einen wenn in JS gibt, ist es immer effizienter als Aussagen ohne ein if.
Normale AJAX -Methode
Die Codekopie lautet wie folgt:
/**
* JS Lazy -Funktion
*/
Funktion ajax () {
if (typeof xmlhttprequest! = "undefined") {
Rückgabe neuer xmlhttprequest ();
} else if (typeof activeXObject! = "undefined") {
if (typeof argumente.callee.activeXstring! = "String") {
VAR -Versionen = ["msxml2.xmlhttp.6.0", "msxml2.xmlhttp.3.0", "msxml2.xmlhttp"];
für (var i = 0, k = Version.length; i <k; i ++) {
versuchen{
New ActiveXObject (Versionen [i]);
argumente.callee.activeXstring = Versionen [i];
brechen;
} catch (ex) {
Ex werfen;
}
}
}
Neue ActiveXObject zurückgeben (Argumente.Callee.ActiveXString);
}anders{
werfen "kein xhr -Objekt";
}
}
Jedes Mal, wenn AJAX () -Funktion aufgerufen wird, ist die integrierte XHR-Prüfung des Browsers nicht effizient.
So verwenden Sie faule Methoden
Die Codekopie lautet wie folgt:
/**
* JS Lazy -Funktion
*/
Funktion ajax () {
if (typeof xmlhttprequest! = "undefined") {
ajax = function () {
Rückgabe neuer xmlhttprequest ();
};
} else if (typeof activeXObject! = "undefined") {
ajax = function () {
if (typeof argumente.callee.activeXstring! = "String") {
VAR -Versionen = ["msxml2.xmlhttp.6.0", "msxml2.xmlhttp.3.0", "msxml2.xmlhttp"];
für (var i = 0, k = Version.length; i <k; i ++) {
versuchen{
var xhr = new ActiveXObject (Versionen [i]);
argumente.callee.activeXstring = Versionen [i];
Rückgabe xhr;
} catch (ex) {
Ex werfen;
}
}
}
Neue ActiveXObject zurückgeben (Argumente.Callee.ActiveXString);
}
}anders{
ajax = function () {
werfen "kein xhr -Objekt";
}
}
return ajax ();
}
In der zweiten faulen Methode weist jeder Zweig von if der AJAX () -Variablen einen Wert zu, der die ursprüngliche Funktion effektiv überschreibt, und die neue Funktion wird im letzten Schritt aufgerufen. Wenn Ajax () das nächste Mal aufgerufen wird, wird die Variable direkt aufgerufen.
Optimierungsfokus
Um einen bestimmten Code auszuführen, wird nur der tatsächliche Anruf ausgeführt, während einige JS-Bibliotheken den Browser am Anfang erkennen und voreingestellt sind.
Aufgrund des komplexen Urteils ist die erste Laufgeschwindigkeit langsam, aber der nachfolgende Multi-Book-Lauf wird schneller.
Manchmal können Sie nach dem Schreiben von Code für lange Zeit nicht unverändert bleiben. Sie müssen oft darüber nachdenken, wie das Programm schneller und effizienter gestaltet werden kann. Das unter solche Gedanken geschriebene Programm ist Hardcover und erzeugt keinen unnötigen Junk -Code. Dies ist kein einfacher Oo-Größenansatz. Tatsächlich leben viele Teile des Codes, und die Menschen leben noch mehr.