JavaScript AJAX malas memuatkan kemahiran function_javascript

WBOY
Lepaskan: 2016-05-16 16:38:38
asal
1168 orang telah melayarinya

Sesetengah kenangan dalam JS hanya perlu dilaksanakan sekali Sebagai contoh, pengesanan jenis penyemak imbas adalah fungsi yang paling biasa digunakan, kerana apabila kita menggunakan Ajax, kita perlu mengesan XHR terbina dalam penyemak imbas. Kami boleh merekodkan jenis semasa pengesanan pertama, dan tidak perlu mengesan jenis penyemak imbas apabila menggunakan Ajax pada masa hadapan. Dalam JS, walaupun hanya terdapat satu pernyataan if, ia sentiasa lebih cekap daripada pernyataan tidak if.

Kaedah Ajax biasa

Salin kod Kod adalah seperti berikut:

/**
* Fungsi malas JS
,*/

fungsi ajax(){
If(typeof XMLHttpRequest != "undefined"){
           kembalikan XMLHttpRequest();                                          }else if(typeof ActiveXObject != "undefined"){
If(typeof arguments.callee.activeXString != "string"){
             var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp"];
for(var i=0,k=version.length;i                   cuba{
                            ActiveXObject baharu(versi [i]);                      arguments.callee.activeXString = versi[i];
rehat;
                   }tangkap (cth){
buang bekas;
                }
            }
                                                                                                                  
          kembalikan ActiveXObject baharu(arguments.callee.activeXString);
}lain{
baling "Tiada objek XHR"; }
}


Setiap kali fungsi ajax() dipanggil, XHR terbina dalam penyemak imbas mesti diperiksa, yang tidak cekap.


Gunakan pendekatan malas

Salin kod

Kod adalah seperti berikut:

/**
* Fungsi malas JS
,*/
 
fungsi ajax(){
    if(typeof XMLHttpRequest != "undefined"){
        ajax = function(){
            kembalikan XMLHttpRequest();   
        };
    }else if(typeof ActiveXObject != "undefined"){
        ajax = function(){
            if(typeof arguments.callee.activeXString != "string"){
                var versions = ["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"];   
 
                for(var i=0,k=version.length;i                     cuba{
                        var xhr = ActiveXObject baharu(versi[i]);  
                        arguments.callee.activeXString = versi[i];
                        pulangkan xhr;
                    }tangkap(cth){
                        buang bekas;  
                    }
                }
            }  
 
            kembalikan ActiveXObject baharu(arguments.callee.activeXString);
        }
    }lain{
        ajax = function(){
            buang "Tiada objek XHR"; 
        }
    }
 
    kembalikan ajax();
}

在第二个惰性方法中if的每个分支都会为ajax()变量赋值,有效覆盖了原有净支了原有净支攰,有净支住数。下一次调用的 ajax()的时候,就直接调用变量。

优化重点

要执行特定代码只有实际调用才执行,而某些JS库一开始就检测浏览器。

由于加了复杂的判断所以首次运行速度慢,但后边的多册运行的效率会>更🎫。  

有时候写代码久了,不能一成不变,要经常思考怎样才能使程序运行的更快,更快,更快,更快。下写出来的程序才是精装,而不会产生多余的垃圾代码。这也不是简单OO就能一刀切,实际上代码很多地方都是活的,人更是活的。

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan