初始 Ajax----小例----javascript

 

function ajax(options) {
 var req = false;
 if (window.XMLHttpRequest) {
  req = new window.XMLHttpRequest();
 } else if (window.ActiveXObject) {
  req = new window.ActiveXObject('Microsoft.XMLHTTP');
 }
 if (!req)
  return false;
// alert("req.readyState1:"+req.readyState);
 //0:描述一种"未初始"状态;此时,已经创建一个XMLHttpRequest对象,但是还没有初始化。
 req.open(options.method, options.url, true);
// alert("req.readyState2:"+req.readyState);

 req.onreadystatechange = function() {//初始化
//  alert("req.readyState:"+req.readyState);
  switch (req.readyState) {
  case 1: //1:描述一种"发送"状态;此时,代码已经调用了XMLHttpRequest open()
   //方法并且XMLHttpRequest已经准备好把一个请求发送到服务器。
//   alert('Loading');
   break;
  case 2://2:描述一种"发送"状态;此时,已经通过send()方法把一个请求发送到服务器端,但是还没收到一个响应。
//   alert('Loaded');
   break;
  case 3://描述一种"正在接收"状态;此时,已经接受到HTTP相应头部信息,但是消息体部分还没有完全接受结束。
//   alert('Interactive');
   break;
  case 4://4:描述一种"以加载"状态;此时,相应已经被玩全接收。
//   alert('ready');
   if (req.status == 200) {
    options.listener.call(req);
   } else {//页面不正常
    window.alert("您所请求的页面有异常。");
   }
  }
  //测试Ajax原来在请求发送之后一直在循环执行函数processResponse()
//  alert("[循环执行函数processResponse()]req.readyState:"+req.readyState);
 };
 switch (options.method) {
 case 'GET':
  req.send(null);
  break;
 case 'POST':
//  alert('send start......');
  req.setRequestHeader("Content-Type",
    "application/x-www-form-urlencoded");//POST方式需要自己设置http的请求
//  alert('send before');
  req.send(options.param);
//  alert('send after');
  break;
 case 'HEAD':
  break;
 default:
 }
 return req;
}

function callback() {
// alert('callback');
// alert(this.responseText);
 var res = this.responseXML.getElementsByTagName("res")[0].firstChild.data;
 if (res == '0') {//0:数据库不存在此用户。
  document.getElementById("error").innerHTML = "恭喜,名字可用";
 } else {//1
  document.getElementById("error").innerHTML = "名字已经存在";
 }

}

function check_name_existed(servlet,value) {
 var options = {
  url : servlet,
  listener : callback,
  method : 'POST',
  param : 'name=' + value
 + '&b=' + '3'
 }
 var req = ajax(options);

}

Ajax兴起于2006年,现在都五六年了,技术应经很完善了听说,今天初识

相见恨晚。。。只怪自己晚生几年。。。注:此处为佳话 - - !!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值