Ajax解决的问题就是“无刷新更新页面”!
用传统的HTML表单方式进行页面的更新提交时,每次都要将请求提交到服务器,服务器返回后再重新渲染界面,这样界面就会经历︰提交→变白→重新显示这样一个过程,用户体验非常差,而使用AJAX则不会导致页面重新刷新。
Ajax最本质的实现是在JS中使用XMLHttpRequest进行Http 的请求,开发中通常使用UpdatePanel、JQuery等方式简化Ajax的开发,UpdatePanel的方式实现AJAX最简单,但是数据通讯量比较大,因为要来回传整个ViewState,而且不灵活,对于复杂的需求则可以使用JQuery提供的Ajax功能。
Ajax最重要的问题是无法跨域请求,也就是无法在页面中向和当前域名不同的页面发送请求,可以使用在当前页面所在的域的服务端做代理页面的方式解决。
使用方法:
$.ajax({
url:"", //发送请求的地址
type:"", //请求方法(post或者get),默认是get
data:{}, //发送到服务器的数据,要求是Object或string类型的参数
success:function(data){
//请求成功后调用的回调函数,要求为function类型的参数,有两个参数。
},complete: function() {
//请求完成的处理
},error: function (//集合对象, 返回状态, 错误信息) {
/*错误信息处理*/
}
})
error事件返回的第一个参数XMLHttpRequest有一些有用的信息:
XMLHttpRequest.readyState:
状态码
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了