滚动新闻:
  网站首页     新闻资讯     网络安全     网页制作     办公软件     网站运营     平面设计     网络编程  
今天是,欢迎访问Ok3w新闻发布系统! 请您留言 | 免费下载 | 设为首页 | 加入收藏
您当前位置:网站首页 >> 网页制作 >> Javascript/Ajax >> 阅读文章
站内查找:

Ajax 技术从入门到精髓


来源:Ok3w新闻发布系统 发布时间:2009-05-01 00:40:32 查看次数:
清单 5 中的示例 Ajax 方法就是按照这个顺序组织的:

清单 5. 发出 Ajax 请求

function callServer() {
// Get the city and state from the web form
var city = document.getElementById("city").value;
var state = document.getElementById("state").value;
// Only go on if there are values for both fields
if ((city == null) || (city == "")) return;
if ((state == null) || (state == "")) return;
// Build the URL to connect to
var url = "/scripts/getZipCode.php?city=" + escape(city) + "&state=" + escape(state);
// Open a connection to the server
xmlHttp.open("GET", url, true);
// Setup a function for the server to run when it's done
xmlHttp.onreadystatechange = updatePage;
// Send the request
xmlHttp.send(null);
}

其中大部分代码意义都很明确。开始的代码使用基本 Javascript 代码获取几个表单字段的值。然后设置一个 PHP 脚本作为链接的目标。要注意脚本 URL 的指定方式,city 和 state(来自表单)使用简单的 GET 参数附加在 URL 之后。

然后打开一个连接,这是您第一次看到使用 XMLHttpRequest。其中指定了连接方法(GET)和要连接的 URL。最后一个参数如果设为 true,那么将请求一个异步连接(这就是 Ajax 的由来)。如果使用 false,那么代码发出请求后将等待服务器返回的响应。如果设为 true,当服务器在后台处理请求的时候用户仍然可以使用表单(甚至调用其他 Javascript 方法)。

xmlHttp(要记住,这是 XMLHttpRequest 对象实例)的 onreadystatechange 属性可以告诉服务器在运行完成 后(可能要用五分钟或者五个小时)做什么。因为代码没有等待服务器,必须让服务器知道怎么做以便您能作出响应。在这个示例中,如果服务器处理完了请求,一个特殊的名为 updatePage() 的方法将被触发。

最后,使用值 null 调用 send()。因为已经在请求 URL 中添加了要发送给服务器的数据(city 和 state),所以请求中不需要发送任何数据。这样就发出了请求,服务器按照您的要求工作。

如果没有发现任何新鲜的东西,您应该体会到这是多么简单明了!除了牢牢记住 Ajax 的异步特性外,这些内容都相当简单。应该感激 Ajax 使您能够专心编写漂亮的应用程序和界面,而不用担心复杂的 HTTP 请求/响应代码。

清单 5 中的代码说明了 Ajax 的易用性。数据是简单的文本,可以作为请求 URL 的一部分。用 GET 而不是更复杂的 POST 发送请求。没有 XML 和要添加的内容头部,请求体中没有要发送的数据;换句话说,这就是 Ajax 的乌托邦。

不用担心,随着本系列文章的展开,事情会变得越来越复杂。您将看到如何发送 POST 请求、如何设置请求头部和内容类型、如何在消息中编码 XML、如何增加请求的安全性,可以做的工作还有很多!暂时先不用管那些难点,掌握好基本的东西就行了,很快我们就会建立一整套的 Ajax 工具库。

处理响应

现在要面对服务器的响应了。现在只要知道两点:

什么也不要做,直到 xmlHttp.readyState 属性的值等于 4。
服务器将把响应填充到 xmlHttp.responseText 属性中。

其中的第一点,即就绪状态,将在下一篇文章中详细讨论,您将进一步了解 HTTP 请求的阶段,可能比您设想的还多。现在只要检查一个特定的值(4)就可以了(下一期文章中还有更多的值要介绍)。第二点,使用 xmlHttp.responseText 属性获得服务器的响应,这很简单。清单 6 中的示例方法可供服务器根据 清单 5 中发送的数据调用。

清单 6. 处理服务器响应

function updatePage() {
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
document.getElementById("zipCode").value = response;
}
}

·上一条:Ajax是什么
·下一条:最基本的AJAX框架的实现方法
相关文章
·Ajax是什么 2009-05-01 00:43:25
·Ajax 技术从入门到精髓 2009-05-01 00:40:32
·最基本的AJAX框架的实现方法 2009-05-01 00:38:02
·AJAX调用WCF服务项模板[ASP.NET] 2009-05-01 00:35:24
·AJAX的类库中使用服务接口定义[ASP.NET] 2009-05-01 00:34:14
·Ajax文本框输入提示 2009-05-01 00:31:29
·AJAX应用中使用TODO服务[ASP.NET] 2009-05-01 00:30:32
·Web2.0网站攻击新潮—Ajax Hacking 2009-05-01 00:20:36
文章评论
现在有0人对本文发表评论 查看所有评论
赞助商链接
  最新更新
·Ajax是什么
·Ajax 技术从入门到精髓
·最基本的AJAX框架的实现方法
·AJAX调用WCF服务项模板[ASP.NET]
·AJAX的类库中使用服务接口定义[ASP.NET]
·Ajax文本框输入提示
·AJAX应用中使用TODO服务[ASP.NET]
·Web2.0网站攻击新潮—Ajax Hacking
·Ajax让网页木马“悄悄的执行”
  阅读排行
·Ajax 技术从入门到精髓
·Ajax让网页木马“悄悄的执行”
·Web2.0网站攻击新潮—Ajax Hacking
·Ajax是什么
·AJAX调用WCF服务项模板[ASP.NET]
·最基本的AJAX框架的实现方法
·Ajax文本框输入提示
·AJAX的类库中使用服务接口定义[ASP.NET]
·AJAX应用中使用TODO服务[ASP.NET]
关于我们 | 使用说明 | 联系方式 | 免责声明 | 免费下载 | 有事请留言 | 滇ICP备08101427号
联系邮箱:zhengbi888@yahoo.com.cn 在线QQ:124895502
Copyright 2009, 版权所有 www.glzy8.com.