您的位置:首页 > 其它

ajax

2016-09-04 16:04 218 查看
Ajax:asynchronous javascript and xml,是可以与服务器进行(异步/同步)交互的技术之一

最大特点:页面不刷新

(一)ajax是xhtml css javascript xml XMLHttpRequest对象(ajax对象)其中XMLHttpRequest是ajax的官方名称

(二)使用ajax:

1.创建ajax对象

1.1 主流(火狐 谷歌)等浏览器,包括IE7以上版本的浏览器

方式:
var xhr=new XMLHttpRequest;


1.2 IE(6/7/8)版本

方式:
var xhr=new ActiveXObject("Msxml2.XMLHTTP.6.0");


1.3 区别浏览器

if(typeof XMLHttpRequest != 'undefined')
var xhr = new XMLHttpRequest;
else
var xhr = new ActiveXObject('Msxml2.XMLHTTP6.0');


2.发送对服务器的请求

//创建一个新的http请求
xhr.open(请求方式get/post,请求地址(url),异步/同步(true/false));
//发送请求
xhr.send(post请求输入要传递的数据/get请求设置null);


3.接收服务器返回的信息

3.1 浏览器可以接受的信息ajax都可以接受

3.2 ajax(XMLHttpRequest)对象的成员:

属性:

responseText 以字符串的形式接收服务器端返回的信息

readyState 表示ajax的状态值

onreadystatechange 事件,该事件可以感知ajax状态的变化

方法:

abort 取消当前请求

getAllResponseHeaders 获取响应的所有Http头

getResponseHeader 从响应信息中获取指定的Http头

open 创建一个新的http请求,并指定请求的方法和url

send 发送请求到http服务器并接收回应

setRequestHeader 单独指定请求的某个http头

3.3 ajax的五种状态(readyState)

0: 创建ajax对象完毕,但未调用open方法

1: 请求已经创建,但未调用send方法

2: 请求已经发送完成

3: 服务器的数据返回了一部分

4: 服务器的数据返回完毕,并且连接已关闭

4.get/post方式的ajax请求:

4.1 get和post的主要区别:

一.get方式给服务器传递的数据量有大小限制,在2k左右,post方式传送的数据量没有大小限制,但是在php.ini中默认上限是8M

二.post传送数据更安全

三.传送数据的方式不一样,get方式在url后以请求字符串形式传递参数,post方式是把数据以xml形式传递给服务器

4.2 ajax的get请求:

一.在url地址后以请求字符串形式处理数据,比如:

xhr.open('get','test.php?action=login');


二. 对 中文 = &等特殊字符进行处理:

在php中可以用函数urlencode()/urldecode()对特殊符号进行编码和反编码处理

在javascript中使用encodeURIComponent()对特殊符号进行编码

4.3 ajax的post请求:

一.给服务器传递数据需要调用send(请求字符串数据)

二.post模仿form表单把数据传递给服务器(设置表头)

xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');//写在open之后,send之前


5.同步/异步

异步:同一时间点允许执行多个进程 true(open方法中默认是true)

同步:同一时间点只允许执行一个进程 false

举例说明:当html页面中有图片进行加载时,如果ajax是异步请求,那么浏览器可以一边执行ajax一边加载图片;如果是同步请求,浏览器就必须先执行ajax之后再接着加载图片
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: