Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > apakah itu ajax refactoring

apakah itu ajax refactoring

WBOY
Lepaskan: 2022-07-01 17:12:39
asal
1514 orang telah melayarinya

Pemfaktoran semula Ajax merujuk kepada meningkatkan kualiti dan prestasi perisian dengan melaraskan kod program tanpa mengubah fungsi sedia ada perisian, menjadikan model reka bentuk dan seni bina program lebih munasabah, dan meningkatkan kebolehskalaan perisian. dan kebolehselenggaraan; pelaksanaan Ajax bergantung terutamanya pada objek XMLHttpRequest Memandangkan contoh objek ini akan dimusnahkan selepas pemprosesan acara selesai, ia mesti dibina semula apabila ia perlu dipanggil.

apakah itu ajax refactoring

Persekitaran pengendalian artikel ini: sistem windows10, versi javascript1.8.5&&&html5, komputer Dell G3.

Apakah itu ajax refactoring

Refactoring adalah untuk meningkatkan kualiti dan prestasi perisian dengan melaraskan kod program tanpa mengubah fungsi sedia ada perisian dan seni bina program ini lebih munasabah, meningkatkan kebolehskalaan dan kebolehselenggaraan perisian.

Objek teras Ajax ialah XMLHttpReguest, yang bermaksud bahawa apabila kita berinteraksi dengan pelayan melalui Ajax, kita mesti membina objek XMLHttpRequest.

Tetapi apabila halaman berinteraksi dengan pelayan melalui Ajax, objek XMLHttpReguest akan dimusnahkan selepas interaksi.

Jadi halaman kami berinteraksi dengan pelayan melalui Ajax sekali lagi, dan kami perlu membina semula objek XMLHttpRequest.

Kemudian apabila mencipta objek XMLHttpReguest, kita perlu mempertimbangkan keserasian pelayar, jadi penciptaan XMLHttpReguest juga sangat menyusahkan dan perlu dibuat dengan cara yang berbeza mengikut jenis pelayar yang berbeza.

Jadi, jika kita menggunakan teknologi Ajax pada banyak halaman, kita perlu mencipta objek ini dalam banyak halaman, yang tidak mencerminkan OO (gaya berorientasikan objek, Penggunaan Semula kod), penggunaan semula kod penyokong berorientasikan objek, jadi kami biasanya merangkum objek XMLHttpReguest dan beberapa kaedah biasa untuk memproses permintaan Ajax melalui pembinaan semula Ajax, maka kami boleh merujuk secara langsung objek ini untuk mencapai penggunaan semula kod dan menjimatkan masa penciptaan objek ini

Langkah pembinaan semula Ajax

1) Buat fail JS yang berasingan, bernama AjaxRequest.js, dan tulis kod yang diperlukan untuk membina semula Ajax dalam fail ini

2) Sertakan fail AjaxRequest.js yang baru dibuat

dalam halaman di mana Ajax perlu digunakan 3) Tulis kaedah pengendalian ralat, kaedah instantiasi dan fungsi panggil balik objek Ajax dalam halaman yang menggunakan Ajax

Dalam halaman jsp atau html, kami menulis Kod skrip JavaScript, maka kita boleh Tulis kod skrip JavaScript terus di dalamnya. Anda juga boleh menggunakan kaedah lain: buat fail js, dan kemudian perkenalkan fail js ini ke dalam halaman jsp atau html yang kami tulis

Contohnya adalah seperti berikut:

(1) Buat fail JS berasingan bernama AjaxRequest.js, dan tulis kod yang diperlukan untuk membina semula Ajax dalam fail ini.

 var net = new Object();    //创建一个全局变量net
 //编写构造函数
 net.AjaxRequest = function(url,onload,onerror,method,params){
     this.req = null;
     this.onload = onload;
     this.onerror = (onerror) ? onerror : this.defaultError;
     this.loadDate(url,method,params);
 }
 //编写用于初始化XMLHttpRequest对象并指定处理函数,最后发送HTTP请求的方法
 net.AjaxRequest.prototype.loadDate = function(url,method,params){
     if(!method){
         method = "GET";
     }
     if(window.XMLHttpRequest){
         this.req = new XMLHttpRequest();
     }else if(window.ActiveXObject){
         this.req = new ActiveXObject("Microsoft.XMLHTTP");
     }
     if(this.req){
         try{
             var loader = this;
             this.req.onreadystatechange = function(){
                 net.AjaxRequest.onReadyState.call(loader);
             }
             this.req.open(method,url,true);    //建立对服务器的调用
             if(method == "POST"){              //如果提交方式为POST
                 this.req.setRequestHeader("Content-Type",
                     "application/x-www-form-urlencoded");   //设置请求头
             }
             this.req.send(params);    //发送请求
         }catch(err){
             this.onerror.call(this);
         }
     }
 
 }
 //重构回调函数
 net.AjaxRequest.onReadyState = function(){
     var req = this.req;
     var ready = req.readyState;
     if(ready == 4){               //请求完成
         if(req.status == 200){    //请求成功
             this.onload.call(this);
         }else{
             this.onerror.call(this);
         }
     }
 }
 //重构默认的错误处理函数
 net.AjaxRequest.prototype.defaultError = function(){
     alert("错误数据\n\n回调状态:"+this.req.readyState+"\n状态:"+this.req.status);
 }
Salin selepas log masuk

(2) Gunakan pernyataan berikut dalam halaman di mana Ajax perlu digunakan, termasuk fail JS yang dibuat dalam (1)

<script language="javascript" src="AjaxRequest.js"></script>
Salin selepas log masuk

(3) Dalam halaman di mana Ajax digunakan Tulis kaedah pengendalian ralat, kaedah untuk membuat instantiating objek Ajax, dan fungsi panggil balik.

 <script language="javascript">
 /*********************错误处理的方法******************/
     function onerror(){
         alert("您的操作有误!");
     }
 /*********************实例化Ajax对象的方法************/
     function getInfo(){
         var loader = new net.AjaxRequest("getInfo.jsp?nocache="+new Date().getTime(),
             deal_getInfo,onerror,"GET");
     }
 /*********************回调函数************************/
     function deal_getInfo(){
         document.getElementById("showInfo").innerHTML=this.req.responseText;
     }
 </script>
Salin selepas log masuk

[Cadangan tutorial berkaitan: Tutorial video AJAX]

Atas ialah kandungan terperinci apakah itu ajax refactoring. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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