首先,AJAX使用的技术有用于显示页面的html,xhtml,表示文档结构的文档对象模型(DOM),CSS样式以及服务端和客户端的通信数据XML格式或者JSON格式,XML是标准的数据表示方式,JSON则是比较轻量级的数据表示方式。而且格式也只有三种,对象,数组,字符串。现在很多的服务端已经对JSON进行了类库的支持,典型的诸如ASP.NET MVC。 AJAX最核心的东西是XMLHttpRequest对象,其最大的特点是它允许javascript以异步的方式向服务器发送http请求,并能够得到服务器的响应。先看一段创建XMLHttpRequest对象的方法
open():建立到服务器的新请求。 send():向服务器发送请求。
abort():退出当前请求。
readyState:提供当前 HTML 的就绪状态。
responseText:服务器返回的请求响应文本。
先看看怎么得到一个XMLHttpRequest对象
- var xmlrequest = false;
- try {
- xmlrequest = new XMLHttpRequest();
- } catch (trymicrosoft) {
- try {
- xmlrequest = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (othermicrosoft) {
- try {
- xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (failed) {
- xmlrequest = false;
- }
- }
- }
根据上面我们所介绍的方法,假设我们有个action的请求路径为/UserManage/Index/ ,我们要请求这个action,那么我们要这样写,xmlrequest.open("POST",/UserManage/Index/ ",true); 其中第一个参数为发送请求的方式,GET还是POST。GET请求时发送的参数是追在url 问号后面,而POST则是加载HTTP头文件里面,所以GET没有POST安全。第二个参数则是请求的URL,第三个参数设置是否是异步连接。接着我们要指定该异步调用的回调函数。假设我们调用的是checkUser,那么我们要这样写xmlrequest.onreadystatechnage=checkUser(); onreadystatechnage有四个值,0代表初始化状态,已经创建了XMLHttpRequest对象。1代表已经启动了open方法但是还未发送请求。2代表请求已经发送但是还未得到服务器的响应。3代表客户端已经开始接受服务端响应,但是还未接收完成。4代表响应已经完全接收完毕。在我们设置完回调函数以后我们发送请求,xmlrequest.send(null),send方法是向服务器发送请求,因为在这里我们不需要往服务器发送请求参数,所以用null。完了之后我们就看看checkUser这个js。应该这么写if(xmlrequest.readystate==4) {var result=xmlrequest.responseText};这样我们就得到了服务端返回给客户端的数据。就是这么简单,今天写的都是最基本的ajax,其实类似于jquery,微软的microsoftAjax已经对ajax进行了很好的封装。今天就写这么些,下一篇就开始写微软ajax框架。