Ajax 由 HTML、JavaScript™ 技能、DHTML 和 DOM 组成,这一精彩的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 运用程序。它是一种构建网站的强大方法。
Ajax 考试测验建立桌面运用程序的功能和交互性,与不断更新的 Web 运用程序之间的桥梁。可以利用像桌面运用程序中常见的动态用户界面和俊秀的控件,不过是在 Web 运用程序中。
Ajax 运用程序所用到的基本技能:

1、HTML 用于建立 Web 表单并确定运用程序其他部分利用的字段。
2、JavaScript 代码是运行 Ajax运用程序的核心代码,帮助改进与做事器运用程序的通信。
3、DHTML 或 Dynamic HTML,用于动态更新表单。我们将利用div、span 和其他动态 HTML 元向来标记 HTML。
4、文档工具模型 DOM 用于(通过 JavaScript 代码)处理HTML 构造和(某些情形下)做事器返回的 XML。
Ajax 的定义
Ajax= Asynchronous JavaScript and XML(以及 DHTML 等)Asynchronous异步JS和XML。
XMLHttpRequest这是一个 JavaScript 工具; 是处理所有做事器通信的工具,创建该工具很大略,如清单 1 所示。
清单 1. 创建新的 XMLHttpRequest 工具
<script language=\"大众javascript\"大众 type=\公众text/javascript\"大众>
var xmlHttp = new XMLHttpRequest();</script>
通过 XMLHttpRequest 工具与做事器进行对话的是 JavaScript 技能。这不是一样平常的运用程序流,这正好是 Ajax的强大功能的来源。
Ajax 基本上便是把 JavaScript 技能和 XMLHttpRequest 工具放在 Web 表单和做事器之间。
得到 XMLHttpRequest 的句柄后,利用 JavaScript 代码完成以下任务:
1、获取表单数据:JavaScript 代码很随意马虎从 HTML 表单中抽取数据并发送到做事器。
2、修正表单上的数据:更新表单也很大略,从设置字段值到迅速更换图像。
3、解析 HTML 和 XML:利用 JavaScript 代码操纵 DOM(请参阅 下一节),处理 HTML 表单做事器返回的 XML数据的构造
对付前两点,须要非常熟习 getElementById() 方法,如 清单 2 所示。
清单 2. 用 JavaScript 代码捕获和设置字段值
//捕获字段值:
// 得到字段\"大众phone\"大众的值并用其创建一个变量phone
var phone = document.getElementById(\"大众phone\"大众).value;
//设置字段值:
// 从response的数组中得到值并将其写到标签中
document.getElementById(\"大众order\"大众).value = response[0];
document.getElementById(\"大众address\公众).value = response[1];
DOM的功能
当须要在 JavaScript 代码和做事器之间通报 XML 和改变 HTML 表单的时候,我们再深入研究 DOM。
获取 Request 工具
XMLHttpRequest 是 Ajax 运用程序的核心.
var xmlhttp;
if (window.XMLHttpRequest)
{// 从 IE7+, Firefox, Chrome, Opera, Safari 中得到XMLHttpRequest工具
xmlhttp=new XMLHttpRequest();
}
else
{//从 IE6, IE5 中得到XMLHttpRequest工具
xmlhttp=new ActiveXObject(\公众Microsoft.XMLHTTP\公众);
}
清单 4. 以支持多种浏览器的办法创建 XMLHttpRequest 工具
/ Create a new XMLHttpRequest object to talk to the Web server /
var xmlHttp = false;
/@cc_on @/
/@if (@_jscript_version >= 5)
try {
xmlHttp = new ActiveXObject(\公众Msxml2.XMLHTTP\公众);
} catch (e) {
try {
xmlHttp = new ActiveXObject(\"大众Microsoft.XMLHTTP\"大众);
} catch (e2) {
xmlHttp = false;
}
}
@end @/
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
这段代码的核心分为三步:
1、建立一个变量 xmlHttp 来引用即将创建的 XMLHttpRequest 工具。
2、考试测验在 Microsoft 浏览器中创建该工具:
1)考试测验利用 Msxml2.XMLHTTP 工具创建它。
如果失落败,再考试测验 Microsoft.XMLHTTP 工具。
3、如果仍旧没有建立 xmlHttp,则以非 Microsoft 的办法创建该工具。 末了,xmlHttp 该当引用一个有效的XMLHttpRequest 工具,无论运行什么样的浏览器。
Ajax 的要求/相应
与做事器上的 Web 运用程序打交道的是 JavaScript 技能,而不是直接提交给那个运用程序的 HTML 表单。
发出要求
如何利用XMLHttpRequest 工具?
首先–须要一个能够调用JavaScript 方法 的Web 页面 。
接下来便是在所有 Ajax 运用程序中基本都雷同的流程:
1、从 Web 表单中获取须要的数据。
2、建立要连接的 URL。
3、打开到做事器的连接。
4、设置做事器在完成后要运行的函数。
5、发送要求。
清单 5 中的示例 Ajax 方法便是按照这个顺序组织的:
清单 5. 发出 Ajax 要求
function callServer() {
// 得到city和state的值
var city = document.getElementById(\公众city\"大众).value;
var state = document.getElementById(\"大众state\公众).value;
// 当它们的值任一个不存在的时候结束JS
if ((city == null) || (city == \"大众\"大众)) return;
if ((state == null) || (state == \公众\公众)) return;
// 创建连接的URL工具
var url = \"大众/scripts/getZipCode.php?city=\"大众 + escape(city) + \"大众&state=\"大众 + escape(state);
// 打开一个连接做事器的连接
xmlHttp.open(\"大众GET\"大众, url, true);
// 设置一个方法,当要求返回的时候调用这个方法
xmlHttp.onreadystatechange = updatePage;
//xmlhttp.onreadystatechange=function()
//{
// if (xmlhttp.readyState==4 && xmlhttp.status==200)
// {
// document.getElementById(\"大众myDiv\"大众).innerHTML=xmlhttp.responseText;
// }
//}
// 发生链接
xmlHttp.send(null);
}
开始的代码利用基本 JavaScript 代码获取几个表单字段的值。 然后设置一个 PHP 脚本作为链接的目标。 要把稳脚本 URL 的指定办法,city 和 state(来自表单)利用大略的 GET 参数附加在 URL 之后。 末了一个参数如果设为 true,那么将要求一个异步连接(这便是 Ajax 的由来)。 如果利用 false,那么代码发出要求后将等待做事器返回的相应。 如果设为 true,当做事器在后台处理要求的时候用户仍旧可以利用表单(乃至调用其他 JavaScript 方法)。
onreadystatechange属性可以见告做事器在运行完成后做什么。由于代码没有等待做事器,必须让做事器知道怎么做以便您能作出相应。
在这个示例中,如果做事器处理完了要求,一个分外的名为 updatePage() 的方法将被触发。
末了,利用值 null 调用send()。由于已经在要求 URL 中添加了要发送给做事器的数据(city 和state),以是要求中不须要发送任何数据。这样就发出了要求,做事器按照您的哀求事情。
处理相应
1.什么也不要做,直到 xmlHttp.readyState 属性的值即是 4。
2.做事器将把相应添补到 xmlHttp.responseText 属性中。
个中的第一点,即就绪状态;
第二点,利用 xmlHttp.responseText 属性得到做事器的相应,清单 6中的示例方法可供做事器根据 清单 5 中发送的数据调用。
清单 6. 处理做事器相应
function updatePage() {
if (xmlHttp.readyState == 4) { var response = xmlHttp.responseText;
document.getElementById(\公众zipCode\"大众).value = response;
}
}
它等待做事器调用,如果是就绪状态,则利用做事器返回的值(这里是用户输入的城市和州的 ZIP 编码)设置另一个表单字段的值。
一旦做事器返回 ZIP 编码,updatePage() 方法就用城市/州的 ZIP 编码设置那个字段的值,用户就可以改写该值。这样做有两个缘故原由:
保持例子大略,解释有时候可能希望用户能够修正做事器返回的数据。
要记住这两点,它们对付好的用户界面设计来说很主要。
连接 Web 表单
一个 JavaScript 方法捕捉用户输入表单的信息并将其发送到做事器,另一个 JavaScript 方法监听和处理相应,并在相应返回时设置字段的值。所有这些实际上都依赖于调用 第一个 JavaScript 方法,它启动了全体过程。
利用 JavaScript 技能更新表单。
清单 7. 启动一个 Ajax 过程
<form>
<p>City: <input type=\"大众text\"大众 name=\"大众city\"大众 id=\公众city\"大众 size=\公众25\公众
onChange=\公众callServer();\"大众 /></p>
<p>State: <input type=\"大众text\公众 name=\公众state\"大众 id=\公众state\"大众 size=\"大众25\公众
onChange=\公众callServer();\公众 /></p>
<p>Zip Code: <input type=\"大众text\"大众 name=\"大众zipCode\"大众 id=\"大众city\"大众 size=\"大众5\"大众 /></p>
</form>
结束语
不才一期文章中,您将节制:
1、XMLHttpRequest 工具
2、学会如何处理 JavaScript 和做事器的通信
3、如何利用 HTML 表单以及如何得到 DOM 句柄。
更多干系问题:Ajax视频教程
本文系列文章:
Ajax完全详细教程(二)
Ajax完全详细教程(三)
以上便是Ajax完全详细教程(一)的详细内容,更多请关注其它干系文章!
更多技巧请《转发 + 关注》哦!