在研究了一些例程以后,我发现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;
}
}