创建ajax对象并兼容多个浏览器,ajax对象多个浏览器


复制代码 代码如下:

<script>
function createAjax(){
var request=false;
//window对象中有XMLHttpRequest存在就是非IE,包括(IE7以上版本)
if(window.XMLHttpRequest){
request=new XMLHttpRequest();
if(request.overrideMimeType){
request.overrideMimeType("text/xml");
}
//window对象中有ActiveXObject属性存在就是IE
}else if(window.ActiveXObject){
var versions=['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i<versions.length; i++){
try{
request=new ActiveXObject(versions[i]);
if(request){
return request;
}
}catch(e){
request=false;
}
}
}
return request;
}
var ajax=createAjax();
alert(ajax);
</script>

jQuery的$ajax方法支持同时创建多个异步ajax?而且这些ajax对象必须是并行处理的

ajax请求默认就是并行,如果你一个方法中需要处理多个ajax请求,并且需要执行完一个再执行下一个,可以通过ajax的回调函数中再调另一个请求。
你说的2个两个请求恰好在同一时刻发送会不会有事,那就要看你请求是做了什么事情,比如同时对数据库进行操作,那么你可以在每个请求的时候给数据库加锁。如果不存在并发数据问题,那2个请求同时执行没什么事。
 

js ajax setrequestheader方法的浏览器兼容性问题

xmlhttp 是如何创建的?
应该是你在火狐中,创建的xmlhttp对象,没有成功。只采用IE下的创建方式
在IE与火狐中,创建xmlhttp对象的方法是不一样的,现在给你个方法,用来创建这个对象,你可以试试:
function createxmlhttp(){//创建xmlhttp对象
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xmlhttp = false;
}
}
if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
xmlhttp = new XMLHttpRequest();
if (xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType('text/html');//设置MiME类别
}
}
return xmlhttp;
}

然后在你的AJAX方法中这样调用:
var xmlhttp= createxmlhttp();
if(!xmlhttp){
alert("你的浏览器不支持XMLHTTP!!");
return;
}
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

以上是我的AJAX实现方法,经测试,火狐/IE 及其他浏览器 都好用
有问题在追问
 

相关内容

    暂无相关文章

评论关闭