Ajax梳理
一、Ajax 简介
(1)定义
AJAX = 异步 JavaScript 和 XML。 AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。 这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
(2)具体过程:
- 服务器响应过程
1.用户填写表单字段并单击 Submit 按钮,整个表单发送到服务器
2.服务器将它转发给处理表单的脚本(通常是 PHP 或 Java)
3.脚本执行完成后再发送回全新的页面。
4.当然,在服务器上的脚本或程序处理和返回新表单时用户必须等待。屏幕变成一片空白,等到服务器返回数据后再重新绘制。这就是交互性差的原因,用户得不到立即反馈,因此感觉不同于桌面应用程序。
- Ajax在其中的作用
- 流程如下
二、ajax实现过程
一个简单的ajax实现:
(1)创建 XMLHttpRequest 对象
如上文图中的信息
(2)发送请求
- xmlhttp.open( method,url,async ); //连接服务器
注意:
如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:
POST 请求:
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); // 向请求添加HTTP头 xmlhttp.send("fname=Bill&lname=Gates");
注意:
GET 还是 POST?
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
(3)、接收服务器响应
- 如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
- responseText:获得字符串形式的响应数据。
- responseXML:获得 XML 形式的响应数据。
- 当请求被发送到服务器时,我们需要执行一些基于响应的任务。
XMLHttpRequest 对象有三个重要的属性:- Onreadystatechange
??存储函数(或函数名),每当readyState 属性改变时,就会调用该函数。 - readyState
??存有XMLHttpRequest 的状态信息,从 0 到 4 发生变化。
??- 0: 请求未初始化
??- 1: 服务器连接已建立
??- 2: 请求已接收
??- 3: 请求处理中
??- 4: 请求已完成,且响应已就绪 - Status(HTTP状态码)
??- 1字头:消息。这一类型的状态码,代表请求已被接受,需要继续处理。
??- 2字头:成功。这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。( 200:‘OK‘ )
??- 3字头:重定向。这类状态码代表需要客户端采取进一步的操作才能完成请求。( 304:‘Not Modified‘ )
??- 4字头:请求错误。这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。
??- 5、6字头:服务器错误。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生。
- Onreadystatechange
注意:每当 readyState 改变时,就会触发 onreadystatechange 事件。
在onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。
当readyState 等于 4 且 status 为 2字头或 304 时,表示响应已就绪。
参考:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。