亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ajax重構指的是什么

發布時間:2022-07-02 09:57:58 來源:億速云 閱讀:146 作者:iii 欄目:web開發

這篇“ajax重構指的是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“ajax重構指的是什么”文章吧。

ajax重構指的是在不改變軟件現有功能的基礎上,通過調整程序代碼改善軟件的質量、性能,使其程序的設計模式和架構更合理,提高軟件的擴展性和維護性;Ajax的實現主要依賴于XMLHttpRequest對象,由于該對象的實例在處理事件完成后就會被銷毀,所以在需要調用它的時候就要重新構建。

本文操作環境:windows10系統、javascript1.8.5&&html5版、Dell G3電腦。

什么是ajax重構

重構(Refactoring)就是在不改變軟件現有功能的基礎上,通過調整程序代碼改善軟件的質量、性能,使其程序的設計模式和架構更趨合理,提高軟件的擴展性和維護性。

Ajax的核心對象是XMLHttpReguest,也就是說我們通過Ajax與服務器進行交互,就必須要構建XMLHttpRequest這個對象。

但是在頁面之中通過Ajax與服務器進行交互,在交互之后XMLHttpReguest這個對象就會被銷毀。

所以我們頁面再次通過Ajax與服務器進行交互,還需要重新的構建XMLHttpRequest這個對象。

那么XMLHttpReguest這個對象的創建,我們需要考慮到瀏覽器的兼容性,所以說XMLHttpReguest的創建也是非常繁瑣的,需要根據不同瀏覽器的類型,來進行不同方式的創建。

那么如果說我們在很多的頁面都應用到了Ajax這種技術,我們在很多的頁面當中都要來創建這個對象,這就體現不出OO(面向對象這種風格,代碼的重復利用),面向對象中提倡代碼的重用,所以說我們通常情況下都會通過Ajax重構,來封裝XMLHttpReguest這個對象以及封裝一些對Ajax請求進行處理的通用方法,那么我們在編寫代碼的時候就可以直接來引用這個對象,從而來達到代碼的重用,也節省了這個對象的創建時間

Ajax重構步驟

1)創建一個單獨的JS文件,名字為AjaxRequest.js ,并且在該文件中編寫重構Ajax所需的代碼

2)在 需要應用Ajax的頁面中包括剛剛創建的AjaxRequest.js文件

3)在應用Ajax的頁面中編寫錯誤處理的方法,實例化Ajax對象的方法和回調函數

在jsp或html頁面之中我們編寫一段JavaScript的腳本代碼,那么可以在當前的頁面當中直接編寫JavaScript腳本代碼。也可以使用另外一種方式:創建js文件,然后將這個js文件引入到我們所編寫的jsp或者是html頁面當中

示例如下:

(1)創建一個單獨的JS文件,命名為AjaxRequest.js,并且在該文件中編寫重構Ajax所需要的代碼。

 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);
 }

(2)在需要應用的Ajax的頁面中應用一下的語句包括(1)中創建的JS文件

<script language="javascript" src="AjaxRequest.js"></script>

(3)在應用Ajax的頁面中編寫錯誤處理的方法、實例化Ajax對象的方法和回調函數。

 <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>

以上就是關于“ajax重構指的是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临颍县| 湖北省| 桐城市| 郑州市| 丘北县| 桂平市| 南澳县| 襄樊市| 将乐县| 酉阳| 秦安县| 封丘县| 佳木斯市| 灵台县| 蓬莱市| 积石山| 南木林县| 巴南区| 寿光市| 二连浩特市| 江油市| 承德市| 石台县| 房产| 买车| 金秀| 饶阳县| 保德县| 阿拉善盟| 绥棱县| 定州市| 灯塔市| 霍州市| 错那县| 三穗县| 洞口县| 吉林省| 雅安市| 婺源县| 行唐县| 内乡县|