您现在的位置:首页 >> 前端 >> 内容

ajax简单介绍

时间:2017/5/5 17:02:00 点击:

  核心提示:ajax简单介绍0:同步和异步:1)同步就是你和发送请求到响应完成这个过程是同步的。你必须一同走完这个过程,之后才可以发起下一次请求。然后你和下一次的过程在一同走完,之后再请求下一次2)异步:就是你不...

ajax简单介绍

0:同步和异步:

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获取值,并重新赋值为服务器

//的响应信息,

}

}

} 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获取值,并重新赋值为服务器

//的响应信息,

}

}

}

Tags:AJ JA AX X简 
作者:网络 来源:xueershewa