Ajax (Asynchronous JavaScript + XML ), 核心技术XMLHttpRequest(XML)对象。
IE6 及以下不支持原生XMLHttpRequest,要兼容需要写个函数。
//来源李老师视频
function createXHR(){
if(typeof XMLHttpRequest != 'undefined'){//兼容高版本浏览器
return new XMLHttpRequest();
}else (typeof ActiveXObject != 'undefined'){//IE6 采用 ActiveXObject, 兼容IE6
var versions = [ //由于MSXML库有3个版本,因此都要考虑
'MSXML2.XMLHttp.6.0',
'MSXML2.XMLHttp.3.0',
'MSXML2.XMLHttp'
];
for(var i = 0; i < versions.length; i++){
try{
return new ActiveXObject(versions[i]);
}catch(e){
//跳过
}
}
}else{
throw new Error('您的浏览器不支持XHR对象');
}
}
3、IE默认在第二次请求会默认取缓存数据。可以用随机字符串解决
如:
addEvent( document, 'click', function(){
var xhr = createXHR();//创建XHR对象
xhr.open('get', 'demo.php?rand=' + Math.random(), false); //准备发送请求,false => 同步,?rand=' + Math.random() 为随机字符串解决IE缓存问题
alert(xhr.responseText); //server返回数据
})