首页 > 代码库 > jQuery_review之 原生Ajax的写法

jQuery_review之 原生Ajax的写法

    最低层的ajax的实现是基于浏览器的一个标准,就是XMLHttpRequest对象,这种对象在MS浏览器上面的实现与其他浏览器上面的实现是不一样的。尽管现在非常多的第三方框架采用”模板模式“封装了如何获取XMLHttpRequest对象以及如何发送和处理中间出现的异常,但是还是非常有必要对ajax进行一次复习,这样才能在看其他的方法的时候温故而知新的效果。

    编写原生的ajax的代码,需要需要采用的步骤是,首先,我们应当在function中定义一个XMLHttpRequest的变量对象,然后对这个变量对象进行初始化,这里应该注意的事情是,在不同的浏览器下面得到该对象的方式是不一样的,在MS中,我们使用的是ActiveXObjct的方式来获取,在其他的浏览器下面使用的是window的子对象。在该变量对象初始化之后,使用.open来分别定义参数来指定该XMLHttpRequest对象的使用什么方式来获取信息?要获取信息的URL是什么?以及是同步还是异步来进行获取呢?最后,需要指定这个函数在请求返回之后的回调函数,在回调函数中,根据状态信息和状态码信息来采取相应的动作,最后,使用XMLHttpRequest对象的send方法,发送ajax请求。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  	<script type="text/javascript" src="jquery-1.8.3.js"></script>
	<script type="text/javascript">
  		function ajax(){
  			var xmlHttpRequest = null;
  			if(window.ActiveXObject){
  				xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
  			}else if(window.XMLHttpRequest){
  				xmlHttpRequest=new XMLHttpRequest();
  			}
  			xmlHttpRequest.open("GET","test",true);
  			xmlHttpRequest.onreadystatechange=callBack;
  			xmlHttpRequest.send(null);
  			
  			function callBack(){
  				if(xmlHttpRequest.readyState==4){
  					if(xmlHttpRequest.status ==200){
  						document.getElementById("showText").innerHTML 
  							= xmlHttpRequest.responseText;
  					}
  				}
  			}
  		}
  	</script>
  </head>
  <body>
  	<div id="showText"></div>
  	<input type="button" onclick="javascript:ajax()" value="sendAjax">
  </body>
</html>