Ajax基础教程
2016-06-07 13:50
351 查看
1、XMLHttpRequest 对象
这是一个javascript对象。这是处理所有服务器通信的对象
。
创建对象的过程很简单:
<script language="javascript" type="text/javascript">
var xmlHttp=new XMLHttpRequest();
</script>
Ajax技术基本上就是把javascript技术和XMLHttpRequest对象放在Web表单和服务器之间。当用户填写表单时,数据发送给一些
JavaScript 代码而不是 直接发送给服务器。相反,JavaScript 代码捕获表单数据并向服务器发送请求。更好的是,请求是异步发送的,就是说
JavaScript 代码(和用户)不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使用应用程序。然后,服务器将数据返回 JavaScript 代码(仍然在
Web 表单中),后者决定如何处理这些数据。它可以迅速更新表单数据,让人感觉应用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。JavaScript
代码甚至可以对收到的数据执行某种计算,再发送另一个请求,完全不需要用户干预!它可以根据需要自行与服务器进行交互,用户甚至可以完全不知道幕后发生的一切。
2、加入
一些javascript
·获取表单数据:JavaScript
代码很容易从 HTML 表单中抽取数据并发送到服务器。
·修改表单上的数据:更新表单也很简单,从设置字段值到迅速替换图像。
·解析
HTML 和 XML:使用 JavaScript 代码操纵 DOM(请参阅 下一节),处理 HTML 表单服务器返回的 XML 数据的结构。
对于前两点,需要非常熟悉
getElementById() 方法,
//get
element
var
phone = document.getElementById("phone").value;
//set
element
document.getElementById("order").value
= response[0];
3、以
DOM 结束
最后还有
DOM,即文档对象模型。
1、获取
Request 对象
XMLHttpRequest
是 Ajax 应用程序的核心,由于浏览器之争,XMLHttpRequest成了牺牲品之一。因此在不同浏览器上获得 XMLHttpRequest 对象可能需要采用不同的方法。
Microsoft
浏览器 Internet Explorer 使用 MSXML 解析器处理 XML,如果编写的 Ajax 应用程序要和 Internet Explorer 打交道,那么必须用一种特殊的方式创建对象。根据
Internet Explorer 中安装的 JavaScript 技术版本不同,MSXML 实际上有两种不同的版本,因此必须对这两种情况分别编写代码。
清单
3. 在 Microsoft 浏览器上创建 XMLHttpRequest 对象
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
处理
Mozilla 和非 Microsoft 浏览器
清单
1 所示的一行简单代码:
var
xmlHttp = new XMLHttpRequest();
结合起来支持不同浏览器
清单
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();
}
清单5:
Pub.newXMLHttpRequest=function
newXMLHttpRequest() {
var xmlreq = false;
if (window.XMLHttpRequest) {
xmlreq = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
try {
xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
alert(e2);
}
}
}
return xmlreq;
}
2、Ajax的请求/响应
发出请求
您已经有了一个崭新的 XMLHttpRequest 对象,现在让它干点活儿吧。首先需要一个 Web 页面能够调用的 JavaScript 方法(比如当用户输入文本或者从菜单中选择一项时)。接下来就是在所有
Ajax 应用程序中基本都雷同的流程:
1、从 Web 表单中获取需要的数据。
2、建立要连接的 URL。
3、打开到服务器的连接。
4、设置服务器在完成后要运行的函数。
5、发送请求。
清单
5. 发出 Ajax 请求
function callServer() {
// 从表单中获取数据
var city = document.getElementById("city").value;
var state = document.getElementById("state").value;
// 判断是否输入请求数据
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.send(null);
}
xmlHttp.open("GET", url, true);最后一个参数如果设为 true,那么将请求一个异步连接(这就是 Ajax 的由来)
xmlHttp(要记住,这是
XMLHttpRequest 对象实例)的 onreadystatechange 属性可以告诉服务器在运行完成
后(可能要用五分钟或者五个小时)做什么。因为代码没有等待服务器,必须让服务器知道怎么做以便您能作出响应。在这个示例中,如果服务器处理完了请求,一个特殊的名为 updatePage() 的方法将被触发。
3、处理响应
现在只要知道两点:
·什么也不要做,直到
xmlHttp.readyState 属性的值等于 4。
·服务器将把响应填充到
xmlHttp.responseText 属性中。
清单
6. 处理服务器响应
function updatePage() {
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
document.getElementById("zipCode").value = response;
}
}
4、XMLHttpRequest方法和属性
·open():建立到服务器的新请求。
·send():向服务器发送请求。
·abort():退出当前请求。
·readyState:提供当前 HTML 的就绪状态。
·responseText:服务器返回的请求响应文本。
这是一个javascript对象。这是处理所有服务器通信的对象
。
创建对象的过程很简单:
<script language="javascript" type="text/javascript">
var xmlHttp=new XMLHttpRequest();
</script>
Ajax技术基本上就是把javascript技术和XMLHttpRequest对象放在Web表单和服务器之间。当用户填写表单时,数据发送给一些
JavaScript 代码而不是 直接发送给服务器。相反,JavaScript 代码捕获表单数据并向服务器发送请求。更好的是,请求是异步发送的,就是说
JavaScript 代码(和用户)不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使用应用程序。然后,服务器将数据返回 JavaScript 代码(仍然在
Web 表单中),后者决定如何处理这些数据。它可以迅速更新表单数据,让人感觉应用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。JavaScript
代码甚至可以对收到的数据执行某种计算,再发送另一个请求,完全不需要用户干预!它可以根据需要自行与服务器进行交互,用户甚至可以完全不知道幕后发生的一切。
2、加入
一些javascript
·获取表单数据:JavaScript
代码很容易从 HTML 表单中抽取数据并发送到服务器。
·修改表单上的数据:更新表单也很简单,从设置字段值到迅速替换图像。
·解析
HTML 和 XML:使用 JavaScript 代码操纵 DOM(请参阅 下一节),处理 HTML 表单服务器返回的 XML 数据的结构。
对于前两点,需要非常熟悉
getElementById() 方法,
//get
element
var
phone = document.getElementById("phone").value;
//set
element
document.getElementById("order").value
= response[0];
3、以
DOM 结束
最后还有
DOM,即文档对象模型。
1、获取
Request 对象
XMLHttpRequest
是 Ajax 应用程序的核心,由于浏览器之争,XMLHttpRequest成了牺牲品之一。因此在不同浏览器上获得 XMLHttpRequest 对象可能需要采用不同的方法。
Microsoft
浏览器 Internet Explorer 使用 MSXML 解析器处理 XML,如果编写的 Ajax 应用程序要和 Internet Explorer 打交道,那么必须用一种特殊的方式创建对象。根据
Internet Explorer 中安装的 JavaScript 技术版本不同,MSXML 实际上有两种不同的版本,因此必须对这两种情况分别编写代码。
清单
3. 在 Microsoft 浏览器上创建 XMLHttpRequest 对象
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
处理
Mozilla 和非 Microsoft 浏览器
清单
1 所示的一行简单代码:
var
xmlHttp = new XMLHttpRequest();
结合起来支持不同浏览器
清单
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();
}
清单5:
Pub.newXMLHttpRequest=function
newXMLHttpRequest() {
var xmlreq = false;
if (window.XMLHttpRequest) {
xmlreq = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
try {
xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
alert(e2);
}
}
}
return xmlreq;
}
2、Ajax的请求/响应
发出请求
您已经有了一个崭新的 XMLHttpRequest 对象,现在让它干点活儿吧。首先需要一个 Web 页面能够调用的 JavaScript 方法(比如当用户输入文本或者从菜单中选择一项时)。接下来就是在所有
Ajax 应用程序中基本都雷同的流程:
1、从 Web 表单中获取需要的数据。
2、建立要连接的 URL。
3、打开到服务器的连接。
4、设置服务器在完成后要运行的函数。
5、发送请求。
清单
5. 发出 Ajax 请求
function callServer() {
// 从表单中获取数据
var city = document.getElementById("city").value;
var state = document.getElementById("state").value;
// 判断是否输入请求数据
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.send(null);
}
xmlHttp.open("GET", url, true);最后一个参数如果设为 true,那么将请求一个异步连接(这就是 Ajax 的由来)
xmlHttp(要记住,这是
XMLHttpRequest 对象实例)的 onreadystatechange 属性可以告诉服务器在运行完成
后(可能要用五分钟或者五个小时)做什么。因为代码没有等待服务器,必须让服务器知道怎么做以便您能作出响应。在这个示例中,如果服务器处理完了请求,一个特殊的名为 updatePage() 的方法将被触发。
3、处理响应
现在只要知道两点:
·什么也不要做,直到
xmlHttp.readyState 属性的值等于 4。
·服务器将把响应填充到
xmlHttp.responseText 属性中。
清单
6. 处理服务器响应
function updatePage() {
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
document.getElementById("zipCode").value = response;
}
}
4、XMLHttpRequest方法和属性
·open():建立到服务器的新请求。
·send():向服务器发送请求。
·abort():退出当前请求。
·readyState:提供当前 HTML 的就绪状态。
·responseText:服务器返回的请求响应文本。
相关文章推荐
- Ajax
- $.ajax()方法详解
- jQuery ajax - ajax() 方法
- 使用Ajax实现异步用户名验证
- 使用ajax实现用户登录验证(升级版)
- 解决Ajax悬停效果,无法遮蔽FLASH的问题
- 再谈Jquery Ajax方法传递到action(补充)
- Dom在ajax技术中的作用说明
- AJAX实现瀑布流触发分页与分页触发瀑布流的方法
- 使用Ajax实时检测"用户名、邮箱等"是否已经存在
- 探讨Ajax中同步与异步之间的区别
- ajax中data传参的两种方式分析
- 原生AJAX写法实例分析
- 探秘ajax跨域请求
- Ajax实现简单下拉选项效果【推荐】
- JQuery ajax返回JSON时的处理方式 (三种方式)
- Ajax中浏览器和服务器交互详解
- jQuery AJAX实现调用页面后台方法
- ajax实现点击不同的链接让返回的内容显示在特定div里
- ajax 动态传递jsp等页面使用id辨识传递对象