ajax的工作原理以及异步请求的封装介绍
作者:
客户端通过浏览器的内置对象XMLHttpRequest来发送异步请求,当服务器返回响应时,会调用先前注册的回调函数,异步请求不会阻塞客户端的操作,达到页面无法刷新就可以更新数据的效果
Ajax原理:
客户端通过浏览器的内置对象XMLHttpRequest来发送异步请求,当服务器返回响应时,会调用先前注册的回调函数,在回调函数中可以使用javascript操作DOM来更新页面,异步请求不会阻塞客户端的操作,达到页面无法刷新就可以更新数据的效果。
异步请求的封装:
var xhr=false;
//step1:创建一个兼容浏览器各个版本的XMLHttpRequest对象
if (window.XMLHttpRequest) { //IE7+, Firefox, Chrome, Opera, Safari
xhr = new XMLHttpRequest();
} else {
if (window.ActiveXObject) { //IE浏览器
xhr = new ActiveXObject("Microsoft.XMLHTTP");//IE5+
}
}
//step2:设置回调函数
xhr.onreadystatechange = myCallback;
//step3:创建一个异步请求
xhr.open("method", "url", true);
//如果是post:要设置请求消息体数据的编码方式
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//step4:发送异步请求
xhr.send(content); //如果是get方式 content为null,若为post,content为“名=值”对。
客户端通过浏览器的内置对象XMLHttpRequest来发送异步请求,当服务器返回响应时,会调用先前注册的回调函数,在回调函数中可以使用javascript操作DOM来更新页面,异步请求不会阻塞客户端的操作,达到页面无法刷新就可以更新数据的效果。
异步请求的封装:
复制代码 代码如下:
var xhr=false;
//step1:创建一个兼容浏览器各个版本的XMLHttpRequest对象
if (window.XMLHttpRequest) { //IE7+, Firefox, Chrome, Opera, Safari
xhr = new XMLHttpRequest();
} else {
if (window.ActiveXObject) { //IE浏览器
xhr = new ActiveXObject("Microsoft.XMLHTTP");//IE5+
}
}
//step2:设置回调函数
xhr.onreadystatechange = myCallback;
//step3:创建一个异步请求
xhr.open("method", "url", true);
//如果是post:要设置请求消息体数据的编码方式
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//step4:发送异步请求
xhr.send(content); //如果是get方式 content为null,若为post,content为“名=值”对。