ajax浏览器对象是什么意思,Ajax:如何获取各个浏览器中的 xhr对象

2005年,jjg发表了一篇在线文章,他在文章里介绍了一种技术,叫Ajax,是对Asynchronous Javascript+XML的简写。这一技术能够像服务器请求额外的数据而无需卸载页面,会带来更好的用户体验。

Ajax的核心技术是XMLHttpRequest对象(简称XHR),是又微软首先引入的一个特性,其他的浏览器提供商后来都提供了相同的实现。在XHR以前,Ajax通信必须借助一些hack手段,大多数使用隐藏框架和内嵌框架。XHR为向服务器发送请求和解析服务器相应提供了流畅的接口。能够以异步方式从服务器获取更多信息,意味着用户单击后,可以不必刷新页面也能获取到新数据。可就是通过XHR获取新数据,然后通过DOM将新数据插入到页面中。另外,虽然名字包含XML,但是Ajax通信与数据格式无关。

21.1 XMLHttpRequest 对象

IE5是第一款引入XHR对象的浏览器。在IE5中,XHR对象是通过MSXML库中的一个ActiveX对象实现的。因此,在IE中可能会遇到三种不同版本的XHR对象,及MSXML2.XMLHttp、MSXML2.XMLHttp3.0和MSXML2.XMLHttp.6.0。要使用MSXML库中的对象,需要编写一个函数,例如:

//适用于IE7之前版本

function createXHR(){

if(typeof arguments.callee.activeXString != "string"){

var versions=["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"],i,len;

for(i=0,len=versions.lenght;i

try{

new ActiveXObject(versions[i]);

arguments.callee.activeXString=versions[i];

break;

} catch(ex){

//跳过

}

}

}

return new ActiveXObject(arguments.callee.activeXString);

}

这一段是检测浏览器中有没有ActiveXObject对象的。

arguments.callee表示当前执行函数,看activeXString属性中有没有值,没有进入if中,然后循环MSXML函数库,如果有存在的版本,创建new ActiveXObject('这个函数库'),并将版本赋值activeXString属性,然后break循环。这样下一次在用当前函数,就不用在此检测。

假如你只想支持IE7及更高版本,则可以在这个creteXHR函数中加入对原生XHR对象支持。

function creatXHR(){

if(typeof XMLHttpRequest !=  "undefined"){

return new XMLHttpRequest();

}else if(type ActiveXObject != "undefiend"){

//............

}

}

let xhr=createXHR();

这段代码可以直接获取到浏览器中的xhr对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值