AJAX 基础知识

时间:2023-03-09 17:41:59
AJAX 基础知识

1.AJAX 是一种用于创建快速动态网页的技术。而是一种用于创建更好更快以及交互性更强的
Web 应用程序的技术.
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重

新加载整个网页的情况下,对网页的某部分进行更新。
Ajax的核心是JavaScript对象XmlHttpRequest。
XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。

2.AJAX 工作原理 get post
(客户端) 用户界面->通过(javascript )-> AJAX 引擎->HttpRequest-> Web 和XML 服务

器(服务器端)->数据处理-> WEB 和 XML 服务器->XML-> AJAX 引擎-> html +css-> 用户界面

3.方法:
responseText 获得字符串形式的响应数据。
responseXML 获得 XML 形式的响应数据。
4.属性:
onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该

函数。
readyState

存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
status

200: "OK"
404: 未找到页面

callback 函数是一种以参数形式传递给另一个函数的函数。

5、ajax所包含的技术

大家都知道ajax并非一种新的技术,而是几种原有技术的结合体。它由下列技术组合而成。
1.使用CSS和XHTML来表示。
2. 使用DOM模型来交互和动态显示。
3.使用XMLHttpRequest来和服务器进行异步通信。
4.使用javascript来绑定和调用。

6.Ajax的给我们带来的好处大家基本上都深有体会,在这里我只简单的讲几点:
1、最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好。
  2、使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。
  3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服

务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取

数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。
7、ajax的缺点
1、ajax干掉了back按钮

实例:
function loadXMLDoc(url) {
var xmlhttp;
var txt, x, xx, i;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
txt = "<table border='1'><tr><th>Title</th><th>Artist</th></tr>";
x = xmlhttp.responseXML.documentElement.getElementsByTagName("CD");
for (i = 0; i < x.length; i++) {
txt = txt + "<tr>";
xx = x[i].getElementsByTagName("TITLE");
{
try {
txt = txt + "<td>" + xx[0].firstChild.nodeValue +

"</td>";
}
catch (er) {
txt = txt + "<td> </td>";
}
}
xx = x[i].getElementsByTagName("ARTIST");
{
try {
txt = txt + "<td>" + xx[0].firstChild.nodeValue +

"</td>";
}
catch (er) {
txt = txt + "<td> </td>";
}
}
txt = txt + "</tr>";
}
txt = txt + "</table>";
document.getElementById('txtCDInfo').innerHTML = txt;
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
/* htnl 实例*/
<html>
<head>
</head>
<body>
<div id="txtCDInfo">
<buton onclick="loadXMLDoc('/example/xmle/cd_catalog.xml')">获得 CD 信息</button>
</div>

</body>
</html>