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

Ajax 技术从入门到精髓


来源:Ok3w新闻发布系统 发布时间:2009-05-01 00:40:32 查看次数:
这两句代码基本上就是尝试使用一个版本的 MSXML 创建对象,如果失败则使用另一个版本创建该对象。不错吧?如果都不成功,则将 xmlHttp 变量设为 false,告诉您的代码出现了问题。如果出现这种情况,可能是因为安装了非 Microsoft 浏览器,需要使用不同的代码。

处理 Mozilla 和非 Microsoft 浏览器

如果选择的浏览器不是 Internet Explorer,或者为非 Microsoft 浏览器编写代码,就需要使用不同的代码。事实上就是 清单 1 所示的一行简单代码:

var xmlHttp = new XMLHttpRequest object;

这行简单得多的代码在 Mozilla、Firefox、Safari、Opera 以及基本上所有以任何形式或方式支持 Ajax 的非 Microsoft 浏览器中,创建了 XMLHttpRequest 对象。

结合起来

关键是要支持所有 浏览器。谁愿意编写一个只能用于 Internet Explorer 或者非 Microsoft 浏览器的应用程序呢?或者更糟,要编写一个应用程序两次?当然不!因此代码要同时支持 Internet Explorer 和非 Microsoft 浏览器。清单 4 显示了这样的代码。

清单 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();
}

现在先不管那些注释掉的奇怪符号,如 @cc_on,这是特殊的 Javascript 编译器命令,将在下一期针对 XMLHttpRequest 的文章中详细讨论。

这段代码的核心分为三步:

建立一个变量 xmlHttp 来引用即将创建的 XMLHttpRequest 对象。
尝试在 Microsoft 浏览器中创建该对象:
尝试使用 Msxml2.XMLHTTP 对象创建它。
如果失败,再尝试 Microsoft.XMLHTTP 对象。
如果仍然没有建立 xmlHttp,则以非 Microsoft 的方式创建该对象。
最后,xmlHttp 应该引用一个有效的 XMLHttpRequest 对象,无论运行什么样的浏览器。

关于安全性的一点说明

安全性如何呢?现在浏览器允许用户提高他们的安全等级,关闭 Javascript 技术,禁用浏览器中的任何选项。在这种情况下,代码无论如何都不会工作。此时必须适当地处理问题,这需要单独的一篇文章来讨论,要放到以后了(这个系列够长了吧?不用担心,读完之前也许您就掌握了)。现在要编写一段健壮但不够完美的代码,对于掌握 Ajax 来说就很好了。以后我们还将讨论更多的细节。

Ajax 世界中的请求/响应

现在我们介绍了 Ajax,对 XMLHttpRequest 对象以及如何创建它也有了基本的了解。如果阅读得很仔细,您可能已经知道与服务器上的 Web 应用程序打交道的是 Javascript 技术,而不是直接提交给那个应用程序的 HTML 表单。

还缺少什么呢?到底如何使用 XMLHttpRequest。因为这段代码非常重要,您编写的每个 Ajax 应用程序都要以某种形式使用它,先看看 Ajax 的基本请求/响应模型是什么样吧。

发出请求

您已经有了一个崭新的 XMLHttpRequest 对象,现在让它干点活儿吧。首先需要一个 Web 页面能够调用的 Javascript 方法(比如当用户输入文本或者从菜单中选择一项时)。接下来就是在所有 Ajax 应用程序中基本都雷同的流程:

从 Web 表单中获取需要的数据。
建立要连接的 URL。
打开到服务器的连接。
设置服务器在完成后要运行的函数。
发送请求。

·上一条: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.