Ajax 重構的步驟

 

 

 Ajax重構大體能夠分爲如下3三個步驟。javascript

一 建立一個單獨的JS文件,名稱爲AjaxRequest.js,而且在該文件中編寫重構Ajax 所需的代碼java

具體代碼以下:ajax

var net = new Object();  // 定義一個全局的變量瀏覽器

// 編寫構造函數服務器

net.AjaxRequest = function(url,onload,onerror,method,params)app

{jsp

this.req = null;函數

this.onload = onload;this

   this.onerror =(onerror)?onerror:this.defaultError;url

   this.loadDate(url,method,params);

}

// 編寫用於初始化XMLHttpRequest 對象並指定處理函數,最後發送HTTP 請求的方法

net.AjaxRequest.prototype.loadDate = function(url,method,params)

{

   if(!method)   // 設置默認的請求方式爲GET

   {

     method =「GET」;                                                             

   }

   if(window.XMLHttpRequest)

   {                                                   // 非IE 瀏覽器

     this.req = new XMLHttpRequest();   // 建立XMLHttpRequest 對象                                         

   } 

   else if(window.ActiveXObject)

   {                                       // IE 瀏覽器

      try

      {

         this.req = new ActiveXObject(「Microsoft.XMLHTTP」);    // 建立XMLHttpRequest 對象

        } 

        catch(e)

        {

             try

             {

              this.req = new ActiveXObject(「Msxml2.XMLHTTP」); // 建立XMLHttpRequest 對象

             } 

             catch(e)

             {

             }

         }

   }

   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.setRequestHeader(「x-requested-with」,「ajax」);    // 設置請求的發出者

         }

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

}
 

二 在須要應用Ajax 的頁面中應用如下的語句包括步驟一中建立的JS 文件

<script language =「javascript」src =「AjaxRequest.js」> </ script>

 

三 在應用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>  

相關文章
相關標籤/搜索