Ajax重构大致可以分为以下3三个步骤。

一 创建一个单独的JS文件,名称为AjaxRequest.js,并且在该文件中编写重构Ajax 所需的代码
具体代码如下:
var net = new Object();  // 定义一个全局的变量
// 编写构造函数
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)   // 设置默认的请求方式为GET
         {
        method =“GET”;                                                          
         }
         if(window.XMLHttpRequest)
         {                                                // 非IE 浏览器
        this.req = newXMLHttpRequest();   // 创建XMLHttpRequest 对象                                       
         } 
         elseif(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
        {
                 varloader = 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 = newnet.AjaxRequest(“getInfo.jsp?nocache =”+ new Date().getTime(),deal_getInfo,onerror,“GET”);
}
/ ************************ 回调函数*********************** *************** /
function deal_getInfo()
{
         document.getElementById(“showInfo”).innerHTML= this.req.responseText;
}
</ script>

最新文章

  1. Creating a SharePoint Sequential Workflow
  2. Yii源码阅读笔记(二十二)
  3. ShellExecuteA()&amp;MessageBoxA()
  4. iOS开发中的错误整理,通过storyboard做项目,遇到view看不见,或者view被压缩的情况
  5. C#中Application.DoEvents()的作用
  6. installscript类型 完成时实现推荐安装其他产品的功能
  7. 一天一个类--NIO 之Buffer
  8. Django内置分页
  9. Java语法细节 - 可见性
  10. Ext中继承知识点
  11. 56.两数之和.md
  12. Jupyter Notebook 介绍 安装和使用技巧
  13. JSP:注册&amp;登录
  14. 状态 ajax
  15. 195 Tenth Line
  16. Linux shell —— 数组与关联数组
  17. md5,base64,rsa
  18. linux 目录结构+常用命令+压缩命令+vim使用+及基础知识
  19. 纯命令行界面下安装并运行官方Android emulator
  20. iOS仿UC浏览器顶部频道滚动效果

热门文章

  1. 从fis中得来的数据结构,Object版,
  2. java Collection中的排序问题
  3. (转)DB2中的一些函数
  4. 附3:tips of layout binding and styling
  5. 把数据库内容显示在listview上
  6. 案例42-使用ajax获取crm中的客户列表
  7. 《HTTP权威指南》之HTTP连接管理及对TCP性能的考虑
  8. Springboot - 集成 JPA
  9. Unity3D第二课之通过键盘、鼠标移动物体
  10. plsql 连接 虚拟机Linux下的Oracle数据库 失败