ajax技术的基本原来以及实现过程

前端之家收集整理的这篇文章主要介绍了ajax技术的基本原来以及实现过程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

异步的概念:当ajax对象(XMLHttpRequest)向服务器发送请求的时候,浏览器不会销货当前页面用户仍然可以对向前页面进行操作。

用户输入用户名注册判断该用户是否存在为例

当用输入完用户名进入下一个输入框后,当前输入框失去了一个焦点,从而产生了一个事件,该事件的事务处理函数调用了一个ajax对象,ajax对象就会向服务器发送一个请求,服务器中会相应这个请求发回一个简单的文本或者是一个json而不是整个页面给这个ajax对象,ajax对象事先绑定了一个处理函数,该处理函数从ajax对象中获得服务器返回的数据,就会采取document操作对页面局部进行更新。

在这个过程中,html中要有个焦点事件onblur=f1()

然后要先获得ajax 对象 ,获得对象可以写成一个js脚本文件,放到webroot下一个myjs的文件架下

functiongetXhr(){
varxhr=null;
if(window.XMLHttpRequest){
xhr=newXMLHttpRequest();
}else{
xhr=newActiveXObject('Microsoft.XMLHttp');
}
returnxhr;
}

在这里要再说说ajax对象的一些重要的属性

onreadystatechange 绑定一个事件处理函数,当readystate发生改变时执行该函数

readyState 通信的状态 0 1 2 3 4 5 当为4的时候表示获得了从服务器返回的所有完整数据

responseText 获得服务器返回的文本数据

responseXML获得服务返回的xml文件数据(基本上不是用xml获得而是用json获得)

status 获得状态码

ps:json处理数据比xml更快,而且占用资源更少,所以在ajax数据传送中更多的是用json,但是xml的格式类型比json要更多,处理复杂的数据输送也更好些


编程的步骤:

一,获得ajax对象(上面已经写过了)

二,发送请求(分get请求和post请求,发送的方式略有不同,而且处理乱码的方法也不同,后面讲到)

1 get请求

xhr.open('get','check_name.do?username=Tom',true);

ps:true表示是异步请求,不会消除当前页面,而且也不影响用户操作

false是同步请求,不会消除当前页面,但是用户不能操作页面

xhr.onreadystatechange=f1;

xhr.send(null);

2 post请求(没有消息头,所以要加上

xhr.open('post','check_name.do',true);

xhr.sendRequestHeader('content-type','......');

xhr.onreadystatechange=f1;

xhr.send('username'=$F(username));

三 编写服务器端的程序(这里会涉及到参数的中文乱码问题,另一篇专门写)

四 用匿名函数的方式来写处理函数

xhr.onreadystatechange=function(){

if(readyState==4&&status==200){

var txt=xhr.responseText;

$F('id')=txt;

}

}

原文链接:https://www.f2er.com/ajax/162779.html

猜你在找的Ajax相关文章