博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Ajax学习笔记(二)——Ajax引擎实现

Posted on 2007-02-07 11:27  .NET酷  阅读(613)  评论(0编辑  收藏  举报

在研究了一些例程以后,我发现Ajax引擎的实现不是一成不变的,是根据应用程序的需求来编写的, 其中最重要的部分是对异步模式的实现,回顾一下前面的学习就可以了解到,这部分主要是通过调用XMLHttpRequest对象来实现的。

XMLHttpRequest对象是什么?

XMLHttpRequest对象被各种平台的浏览器广泛的支持,它提供了一种通过客户端脚本发送Http请求并获取返回的方式。在不同的浏览器中,XMLHttpRequest对象有不同的名字,调用方式也不一样。
对于IE来说,可以使用下面的代码以适应不同的IE版本:

var xmlHttp = false;
try {
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");//3.0,4.0,5.0
} catch (e) {
    try {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e2) {
        xmlHttp = false;
    }
}
 

如果要兼顾大部分的浏览器,可以使用这样的代码建立XMLHttpRequest对象:

var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP" );
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP" );
  } catch (E) {
   xmlhttp = false;
  }
 }
@end @*/

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
        try {
                xmlhttp = new XMLHttpRequest();
        } catch (e) {
                xmlhttp=false;
        }
}
if (!xmlhttp && window.createRequest) {
        try {
                xmlhttp = window.createRequest();
        } catch (e) {
                xmlhttp=false;
        }
}