文章目录
- 前言
- 一、AJAX 是什么
- 二、AJAX 如何工作?
- 三、AJAX 基于因特网标准
- 四、AJAX应用
- 五、创建 XMLHttpRequest 对象
- 六、发送请求
- 6.1 向服务器发送请求
- 6.2 GET 还是 POST?
- 七、AJAX - 服务器 响应
- 7.1 服务器响应
- 7.2 responseText 属性
- 7.3 responseXML 属性
- 八、AJAX - onreadystatechange 事件
- 8.1 onreadystatechange 事件
- 总结
一、AJAX 是什么?
AJAX = Asynchronous JavaScript and XML. AJAX 是一种用于创建快速动态网页的技术。 AJAX 通过在后台与服务器进行少量数据交换,使网页实现异步更新。这意味着可以在不重载整个页面的情况下,对网页的某些部分进行更新。 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个页面。
AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行
二、AJAX 如何工作?
三、AJAX 基于因特网标准
XMLHttpRequest 对象(与服务器异步交互数据) JavaScript/DOM(显示/取回信息) CSS(设置数据的样式) XML(常用作数据传输的格式)
四、AJAX应用
运用 XHTML+CSS 来表达资讯; 运用 JavaScript 操作 DOM(Document Object Model)来执行动态效果; 运用 XML 和 XSLT 操作资料; 运用 XMLHttpRequest 或新的 Fetch API 与网页服务器进行异步资料交换;
五、创建 XMLHttpRequest 对象
创建 XMLHttpRequest 对象的语法:—— variable=new XMLHttpRequest();
六、发送请求
XMLHttpRequest 对象用于和服务器交换数据。
6.1 向服务器发送请求
如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:
方法
|
描述
|
open(method,url,async)
|
规定请求的类型、URL 以及是否异步处理请求。
|
send(string)
|
将请求发送到服务器。
|
6.2 GET 还是 POST?
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
不愿使用缓存文件(更新服务器上的文件或数据库) 向服务器发送大量数据(POST 没有数据量限制) 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
GET请求示例
xmlhttp.open("GET","/try/ajax/demo_get2.php?fname=Henry&lname=Ford",true);xmlhttp.send();
POST请求示例
xmlhttp.open("POST","/try/ajax/demo_post2.php",true);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.send("fname=Henry&lname=Ford");
方法
|
描述
|
setRequestHeader(header,value)
|
向请求添加 HTTP 头。
|
七、AJAX - 服务器 响应
7.1 服务器响应
如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
属性
|
描述
|
responseText
|
获得字符串形式的响应数据。
|
responseXML
|
获得 XML 形式的响应数据。
|
7.2 responseText 属性
如果来自服务器的响应并非 XML,请使用 responseText 属性。responseText 属性返回字符串形式的响应,
例如——可将responseText属性赋值为某个节点的文本属性document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
7.3 responseXML 属性
如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性:
代码示例——
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("myDiv").innerHTML=txt;
八、AJAX - onreadystatechange 事件
8.1 onreadystatechange 事件
当请求被发送到服务器时,我们需要执行一些基于响应的任务。 每当 readyState 改变时,就会触发 onreadystatechange 事件。 readyState 属性存有 XMLHttpRequest 的状态信息。下面是 XMLHttpRequest 对象的三个重要的属性:
属性
|
描述
|
onreadystatechange
|
存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
|
readyState
|
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
|
status
|
200: "OK"
404: 未找到页面
|
在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。当 readyState 等于 4 且状态为 200 时,表示响应已就绪:
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
总结
好了,就此停笔吧,最后依旧诚挚祝福屏幕前的你健康幸福、平安喜乐。