Asynchronous JavaScript and XML (异步的 JavaScript 和XML)
AJAX 不是新的编程语言,而是一种使用现有标准的新方法,最大的优点是在不重新家在整个页面情况下,可以与服务器交换数据并更新部分页面内容。
XMLHttpRequest 是AJAX 的基础。
<script>
// 现代浏览器(IE7, Firefox, Chrome, Safari 以及Opera)均内建XMLHttpRequest 对象
variable = new XMLHttpRequest()
// 老版本的Internet Explorer(IE5 和IE6)使用ActiveX 对象
variable = new ActiveXObject("Microsoft.XMLHTTP");
</script>
AJAX 是一种在无需重新加载整个网页情况下,能够更新部分网页技术
AJAX 是基于现有Internet 标准,并且联合使用它们:
XMLHttpRequest 对象 | 异步的与服务器交换数据 |
JavaScript/DOM | 信息显示/交互 |
CSS | 给数据定义样式 |
XML | 作为转换数据的格式 |
XMLHttpRequest 对象用于和服务器交换数据
向服务器发送请求,使用XMLHttpRequest 对象的 open() 和send() 方法
open(method,url,async) | 规定请求的类型、URl 以及是否一步处理请求
|
send(string) | 将请求发送到服务器(string:仅用于POST 请求) |
GET or POST
GET 更简单也更快,并且大部分情况下都能使用
但在以下情况下,请使用POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比GET更加稳定也可靠
服务器响应
获得来自服务器的响应,使用XMLHttpRequest 对象的responseText 或responseXML 属性
responseText: 获得字符串形式的响应数据
responseXML:获得XML 形式的响应数据
onreadystatechange 事件
每当readyState 改变时,就会触发onreadystatechange 事件
onreadystatechange | 存储函数(或函数名),每当readyState 属性改变时,就会调用该函数 |
readyState | 存在XMLHttpRequest 的状态,从0 到4 发生变化
|
status |
|