Ajax核心对象-- XMLHttpRequest
【IT168技术文档】
XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,Ajax可以像桌面应用程序一样只同服务器进行数据层的信息交换,而不用每次都刷新页面,也不用每次将数据处理的工作都交给服务器来做;这样即减轻了服务器的负担又加快了响应速度、缩短了用户等待的时间。
XMLHttpRequest是Ajax技术中最重要的一个对象,一个页面在不刷新的情况下可以通过XMLHttpRequest对象发送请求来获取服务器响应。在实际开发中,设计人员可以通过使用该对象在不刷新当前页面的情况下更新局部数据。
XMLHttpRequest是浏览器已经定义好的对象,它是Ajax技术的核心组成部分,JavaScript通过它和服务器之间进行通信,并借助它来解析从服务器传回来的XML文件。
需要注意的是,该对象的创建方法与浏览器相关,从IE 5.0浏览器开始,开发人员可以在Web页面内部使用XMLHTTP ActiveX组件扩展自身的功能。Mozilla 1.0浏览器和NetScape 7浏览器则是创建继承XML的代理类XMLHttpRequest。在大多数情况下,XMLHttpRequest对象和XMLHTTP组件都是非常接近的,他们的方法和属性基本类似,只是在部分属性上有所不同。
在使用XMLHttpRequest对象发送请求和处理响应之前,必须先用JavaScript创建一个XMLHttpRequest对象。由于XMLHttpRequest不是一个W3C标准,所以可以采用多种方法使用JavaScript来创建XMLHttpRequest的实例。Internet Explorer把XMLHttpRequest实现为一个ActiveX对象,其他浏览器(如Firefox、Safari和Opera)把它实现为一个本地JavaScript对象。由于存在这些差别,JavaScript代码中必须包含有关的逻辑,从而使用ActiveX技术或者使用本地JavaScript对象技术来创建XMLHttpRequest的一个实例。
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) ...{ //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) ...{//设置MiME类别
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) ...{ // IE浏览器
try ...{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) ...{
try ...{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) ...{}
}
}
虽然在不同的浏览器中创建该对象的方法不同,由于JavaScript脚本语言是动态的,解释型的语言,并且XMLHttpRequest对象在不同的浏览器中是兼容的,因此实际编程中开发人员可以采用同样的方式使用该对象的属性和方法。
