ajax的简单理解
0:同步和异步:
1)同步就是“你”和“发送请求到响应完成这个过程”是同步的。
你必须一同走完这个过程,之后才可以发起下一次请求。然后你和下一次的过程在一同走完,之后再请求下一次
2)异步:就是“你”不用和“请求到响应这个过程”一起走完。当响应这个过程还没结束的时候,
你可以再次发起请求。不用等着上次响应结束,------不用一起,不用同步。
3)那么问题来了?同步,我们发起请求得到响应,就是得到了我们要的结果,然后在发送其他的请求...
异步,我们发起请求,在还没有得到结果时,又发送了下一次请求,那么上一次请求结果什么时候可以知道,
我们发送请求不就是为了得到响应结果么?
4)可以这么理解:还是表单提交。当我们把表单内容全部写完,提交给服务器时,服务器会统一作出响应,
表单的内容是否正确、表单的格式是否正确...等等。要有一项通不过,还得重新填,有没有一种方法可以把这个统一的响应分开呢?
就是表单的内容做一个响应、表单的格式在坐一个响应、但是这种不是统一的响应必须是局部的,不能是全局的。
人们想出一种方式:异步
那么怎么实现异步的呢?人们做出一个类XMLHttpRequest,这个类可以实现这个功能
1)同步就是“你”和“发送请求到响应完成这个过程”是同步的。
你必须一同走完这个过程,之后才可以发起下一次请求。然后你和下一次的过程在一同走完,之后再请求下一次
2)异步:就是“你”不用和“请求到响应这个过程”一起走完。当响应这个过程还没结束的时候,
你可以再次发起请求。不用等着上次响应结束,------不用一起,不用同步。
3)那么问题来了?同步,我们发起请求得到响应,就是得到了我们要的结果,然后在发送其他的请求...
异步,我们发起请求,在还没有得到结果时,又发送了下一次请求,那么上一次请求结果什么时候可以知道,
我们发送请求不就是为了得到响应结果么?
4)可以这么理解:还是表单提交。当我们把表单内容全部写完,提交给服务器时,服务器会统一作出响应,
表单的内容是否正确、表单的格式是否正确...等等。要有一项通不过,还得重新填,有没有一种方法可以把这个统一的响应分开呢?
就是表单的内容做一个响应、表单的格式在坐一个响应、但是这种不是统一的响应必须是局部的,不能是全局的。
人们想出一种方式:异步
那么怎么实现异步的呢?人们做出一个类XMLHttpRequest,这个类可以实现这个功能
1:用到的地方:注册时提示错误信息、搜索时提示、百度地图扩大局部扩大不是重新刷新页面......
2:作用:提高用户使用浏览器的舒适度。
3:原理:使用异步实现客户端浏览器局部刷新。
1:同步:
两个个特点:1)只有服务器响应完之后才可以发起下一次请求,----------让客户一只等待不好
2)响应后客户端浏览器重新刷新-------------------------像注册信息一样,一项注册失败,其他都白填
2:异步:
1)不用服务器产生响应信息客户端也可以发请求:---客户不用等了心情好
2)可以实现局部刷新,不用刷新整个页面
4:异步的具体实现方法:
1):初始化XMLHttpRequest,得到对象xhr
2):xhr.open();--建立和服务器的连接,有三个参数
1:请求方式 get/post
2:请求的URL,指定服务器端的资源
3:请求是否为异步,true为异步,false为同步,第三个参数不写默认为异步
3):xhr.send():发送请求,有一个参数
如果是get请求:参数为null。get请求没有请球体,请求参数跟在URL后面
如果是post请求:参数为请求参数。post请求参数单独打包。
4):接收响应信息
xhr.onreadystatechange();--发生状态变化时的事物控制,xhr的每一种状态都会调用这个方法
xhr.readyState--请求的状态。有5种情况:-------------得到xhr的状态
0:尚未初始化--------刚创建对象还没有调用open方法
1:正在发送请求------调用open方法还没有调用send方法
2:请求完成----------调用完成open方法了
3:接收响应信息------服务器开始响应,但还没响应完成
4:接收完成
xhr.status---响应信息的状况
200--表示请求成功
202--请求被接收但处理没有完成
400--错误的请求
404--请求资源没有找到
500--服务器内部错误
在javascript中书写方法,方法的作用是向指定的servlet发起请求,并获取响应,将响应的内容
输出在jsp页面内,两种情况:get和post请求;
1:get请求
1)创建XMLHttpRequest对象
var xhr;
function xmlht(){
try{
xhr=new XMLHttpRequest();
}catch(){
}try{
xhr = new ActivXObject("Msxml2.XMLHTTP");
}catch(){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
2)写一个方法用作发出请求和接受响应
function xmlht1(){
//初始化XMLHttpRequest
xmlht();
//建立链接
xhr.open("GET","AServlet",true);
//发送请求
xhr.send(null);
//接收响应数据
xhr.onreadystatechange=function(){//接响应
var id=document.getElementById("span");//获取html中的标签neme
if(xhr.readyState==4&&xhr.status==200){//判断服务器是否响应完成
id.innerHTML=xhr.responseText;//通过标签name获取值,并重新赋值为服务器
//的响应信息,
}
}
}
3:原理:使用异步实现客户端浏览器局部刷新。
1:同步:
两个个特点:1)只有服务器响应完之后才可以发起下一次请求,----------让客户一只等待不好
2)响应后客户端浏览器重新刷新-------------------------像注册信息一样,一项注册失败,其他都白填
2:异步:
1)不用服务器产生响应信息客户端也可以发请求:---客户不用等了心情好
2)可以实现局部刷新,不用刷新整个页面
4:异步的具体实现方法:
1):初始化XMLHttpRequest,得到对象xhr
2):xhr.open();--建立和服务器的连接,有三个参数
1:请求方式 get/post
2:请求的URL,指定服务器端的资源
3:请求是否为异步,true为异步,false为同步,第三个参数不写默认为异步
3):xhr.send():发送请求,有一个参数
如果是get请求:参数为null。get请求没有请球体,请求参数跟在URL后面
如果是post请求:参数为请求参数。post请求参数单独打包。
4):接收响应信息
xhr.onreadystatechange();--发生状态变化时的事物控制,xhr的每一种状态都会调用这个方法
xhr.readyState--请求的状态。有5种情况:-------------得到xhr的状态
0:尚未初始化--------刚创建对象还没有调用open方法
1:正在发送请求------调用open方法还没有调用send方法
2:请求完成----------调用完成open方法了
3:接收响应信息------服务器开始响应,但还没响应完成
4:接收完成
xhr.status---响应信息的状况
200--表示请求成功
202--请求被接收但处理没有完成
400--错误的请求
404--请求资源没有找到
500--服务器内部错误
在javascript中书写方法,方法的作用是向指定的servlet发起请求,并获取响应,将响应的内容
输出在jsp页面内,两种情况:get和post请求;
1:get请求
1)创建XMLHttpRequest对象
var xhr;
function xmlht(){
try{
xhr=new XMLHttpRequest();
}catch(){
}try{
xhr = new ActivXObject("Msxml2.XMLHTTP");
}catch(){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
2)写一个方法用作发出请求和接受响应
function xmlht1(){
//初始化XMLHttpRequest
xmlht();
//建立链接
xhr.open("GET","AServlet",true);
//发送请求
xhr.send(null);
//接收响应数据
xhr.onreadystatechange=function(){//接响应
var id=document.getElementById("span");//获取html中的标签neme
if(xhr.readyState==4&&xhr.status==200){//判断服务器是否响应完成
id.innerHTML=xhr.responseText;//通过标签name获取值,并重新赋值为服务器
//的响应信息,
}
}
}
2:post请求:
var xhr;
function xmlht(){
try{
xhr=new XMLHttpRequest();
}catch(){
}try{
xhr = new ActivXObject("Msxml2.XMLHTTP");
}catch(){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
2)写一个方法用作发出请求和接受响应
function xmlht1(){
//初始化XMLHttpRequest
xmlht();
//建立链接
xhr.open("POST","AServlet",true);
xhr.setRequestHeader("Content-type", "application/x-www-form- urlencoded")//设置请求头
//发送请求
xhr.send("username="username);
//接收响应数据
xhr.onreadystatechange=function(){//接响应
var id=document.getElementById("span");//获取html中的标签neme
if(xhr.readyState==4&&xhr.status==200){//判断服务器是否响应完成
id.innerHTML=xhr.responseText;//通过标签name获取值,并重新赋值为服务器
//的响应信息,
}
}
}
var xhr;
function xmlht(){
try{
xhr=new XMLHttpRequest();
}catch(){
}try{
xhr = new ActivXObject("Msxml2.XMLHTTP");
}catch(){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
2)写一个方法用作发出请求和接受响应
function xmlht1(){
//初始化XMLHttpRequest
xmlht();
//建立链接
xhr.open("POST","AServlet",true);
xhr.setRequestHeader("Content-type", "application/x-www-form- urlencoded")//设置请求头
//发送请求
xhr.send("username="username);
//接收响应数据
xhr.onreadystatechange=function(){//接响应
var id=document.getElementById("span");//获取html中的标签neme
if(xhr.readyState==4&&xhr.status==200){//判断服务器是否响应完成
id.innerHTML=xhr.responseText;//通过标签name获取值,并重新赋值为服务器
//的响应信息,
}
}
}