Dalam JS, beberapa memori hanya perlu dieksekusi sekali, seperti deteksi jenis browser adalah fungsi yang paling umum digunakan, karena ketika kita menggunakan AJAX, kita perlu mendeteksi XHR bawaan browser. Kita dapat merekam jenis selama deteksi pertama, dan di masa depan, kita tidak perlu lagi mendeteksi jenis browser saat menggunakan AJAX. Bahkan jika hanya ada satu jika di JS, itu selalu lebih efisien daripada pernyataan tanpa IF.
Metode AJAX normal
Salinan kode adalah sebagai berikut:
/**
* JS Fungsi Malas
*/
fungsi ajax () {
if (typeOf xmlHttpRequest! = "tidak terdefinisi") {
mengembalikan xmlhttpRequest baru ();
} lain jika (typeof ActiveXObject! = "Undefined") {
if (typeof arguments.callee.activexString! = "string") {
var versi = ["msxml2.xmlhttp.6.0", "msxml2.xmlhttp.3.0", "msxml2.xmlhttp"];
untuk (var i = 0, k = versi.length; i <k; i ++) {
mencoba{
ActivexObject baru (versi [i]);
argumen.callee.activexString = versi [i];
merusak;
} catch (ex) {
lempar ex;
}
}
}
return new ActiveXObject (arguments.callee.activexString);
}kalau tidak{
Lempar "tidak ada objek XHR";
}
}
Setiap kali fungsi Ajax () dipanggil, pemeriksaan XHR bawaan browser tidak efisien.
Cara menggunakan metode malas
Salinan kode adalah sebagai berikut:
/**
* JS Fungsi Malas
*/
fungsi ajax () {
if (typeOf xmlHttpRequest! = "tidak terdefinisi") {
AJAX = function () {
mengembalikan xmlhttpRequest baru ();
};
} lain jika (typeof ActiveXObject! = "Undefined") {
AJAX = function () {
if (typeof arguments.callee.activexString! = "string") {
var versi = ["msxml2.xmlhttp.6.0", "msxml2.xmlhttp.3.0", "msxml2.xmlhttp"];
untuk (var i = 0, k = versi.length; i <k; i ++) {
mencoba{
var xhr = ActivexObject baru (versi [i]);
argumen.callee.activexString = versi [i];
mengembalikan xhr;
} catch (ex) {
lempar ex;
}
}
}
return new ActiveXObject (arguments.callee.activexString);
}
}kalau tidak{
AJAX = function () {
Lempar "tidak ada objek XHR";
}
}
return ajax ();
}
Dalam metode malas kedua, setiap cabang IF akan menetapkan nilai ke variabel ajax (), secara efektif menimpa fungsi asli, dan fungsi baru disebut pada langkah terakhir. Lain kali Ajax () dipanggil, variabel dipanggil secara langsung.
Fokus Optimasi
Untuk menjalankan kode tertentu, hanya panggilan aktual yang dieksekusi, sementara beberapa perpustakaan JS mendeteksi browser di awal dan telah ditentukan sebelumnya.
Karena penilaian yang kompleks, kecepatan lari pertama lambat, tetapi menjalankan multi-buku berikutnya akan lebih cepat.
Terkadang, setelah menulis kode untuk waktu yang lama, Anda tidak dapat tetap tidak berubah. Anda harus sering berpikir tentang cara membuat program berjalan lebih cepat dan lebih efisien. Program yang ditulis di bawah pemikiran seperti itu adalah hardcover dan tidak akan menghasilkan kode sampah yang tidak perlu. Ini bukan pendekatan OO-size-fits-all sederhana. Bahkan, banyak bagian dari kode hidup, dan orang -orang lebih hidup.