简单的Ajax应用

在JavaScript中使用Ajax,可以动态的从服务器获得数据”拼凑“到网页上,这样大大提高了用户体验和速度,在用Ajax的过程中,有不少地方重用性挺高,可以封装起来,下面将处理Ajax的请求封装成了一个对象:

function AjaxRequest() {
  // 根据浏览器条件建立XMLHttpRequest
  // 除IE外的浏览器适合此种方式
  if (window.XMLHttpRequest) {
    try {
      this.request = new XMLHttpRequest();
    } catch(e) {
      this.request = null;
    }
  // try the ActiveX (IE) version 适合IE
  } else if (window.ActiveXObject) {
    try {
      this.request = new ActiveXObject("Msxml2.XMLHTTP");
    // 适合版本较早的IE
    } catch(e) {
      try {
        this.request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        this.request = null;
      }
    }
  }

  // 如果没有创建成功
  if (this.request == null)
    alert("创建失败.\n" + "错误原因: " + e);
}

// 向服务器段发送Ajax请求
AjaxRequest.prototype.send = function(type, url, handler, postDataType, postData) {
  if (this.request != null) {
    // 消除之前的请求
    this.request.abort();


    url += "?dummy=" + new Date().getTime();

    try {
      this.request.onreadystatechange = handler;
      this.request.open(type, url, true); // 这里总设置为异步的 (true表示为异步)
      if (type.toLowerCase() == "get") {
        //Get方式表示从服务器请求数据
        this.request.send(null);
      } else {
        // 否则为Post,表示向服务器发送数据
        this.request.setRequestHeader("Content-Type", postDataType);
        this.request.send(postData);
      }
    } catch(e) {
      alert("与服务器交互发生错误.\n" + "详情: " + e);
    }
  }
}

AjaxRequest.prototype.getReadyState = function() {
  return this.request.readyState;
}

AjaxRequest.prototype.getStatus = function() {
  return this.request.status;
}

AjaxRequest.prototype.getResponseText = function() {
  return this.request.responseText;
}

AjaxRequest.prototype.getResponseXML = function() {
  return this.request.responseXML;
}


 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值