AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML)
Ajax应用程序的优势在于:
1. 通过异步模式,提升了用户体验
2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。巴拉巴拉!@#¥%……&*
Ajax 基本上就是把 JavaScript 技术和 XMLHttpRequest
对象放在 Web 表单和服务器之间。当用户填写表单时,数据发送给一些 JavaScript 代码而不是 直接发送给服务器。相反,JavaScript 代码捕获表单数据并向服务器发送请求。同时用户屏幕上的表单也不会闪烁、消失或延迟。换句话说,JavaScript 代码在幕后发送请求,用户甚至不知道请求的发出。更好的是,请求是异步发送的,就是说 JavaScript 代码(和用户)不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使用应用程序。
在幕后发送请求,请求是异步的!!!!
http://my.oschina.net/wanglin123/blog/60742(原文出处)
1:创建引擎(xmlHttpRequest对象)
不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的,针对IE使用ActiveXObject,针对其他浏览器用xmlHttpRequest,但是如果针对不同版本的的浏览器可以使用“try and catch”语句来进行创建
2:事件处理函数,处理服务器的响应结果。
onreadystatechange事件:该事件处理函数由服务器触发,而不是用户,相当于监听,监听服务器每个动作
readyState 属性表示Ajax请求的当前状态。它的值用数字代表。分别是:
0 代表未初始化。 还没有调用 open 方法
1 代表正在加载。 open 方法已被调用,但 send 方法还没有被调用
2 代表已加载完毕。send 已被调用。请求已经开始
3 代表交互中。服务器正在发送响应
4 代表完成。响应发送完毕
status 属性表示状态码,也是用数字表示,分别是:
404 没找到页面(not found)
403 禁止访问(forbidden)
500 内部服务器出错(internal service error)
200 一切正常(ok)
304 没有被修改(not modified)(服务器返回304状态,表示源文件没有被修改 )
responseText属性包含了从服务器发送的数据
每次 readyState 值的改变,都会触发 readystatechange 事件
3:打开一个连接open(method, url, asynch)
允许客户端用一个Ajax调用向服务器发送请求。
三个参数的含义如下:
method:请求类型,类似 “GET”或”POST”的字符串
url:请求路径字符串,指向所请求的服务器上的那个文件(servlet,jsp,action)
asynch:表示请求是否要异步传输,默认值为true(异步)
4:发送数据send(data)
data:向服务器发的数据,如果是get方式data为null就行,即使传了参数,服务器也收不到。如果为post方式在send(data)之前还要设置requestHeader("Content-Type","application/x-www-form-urlencoded")。