//用一个不存在的属性:undefined
//1.创建ajax对象
var oAjax=null;
if(window.XMLHttpRequest){ // 对ie6来说,window.XMLHttpRequest 是一个undefined属性,为假;其它浏览器是存在的,为真。若此处为 XMLHttpRequest ,则ie6中无法通过,报错。
oAjax=new XMLHttpRequest(); // ie6不认
}else{
oAjax=new ActiveXObject("Microsoft.XMLHTTP"); //ie6专属
}
//2.连接服务器
oAjax.open('GET', url, true); //open(方法, url, 是否异步)
//3.发送请求
oAjax.send();
//4.接收返回
//OnReadyStateChange
oAjax.onreadystatechange=function (){
if(oAjax.readyState==4){ //请求状态已完成:0未初始化、1发送请求、2收到全部响应内容、3对加密内容解析、4内容解析完成可以使用了
if(oAjax.status==200){ //请求结果:已经成功获取指定url的内容。
fnSucc(oAjax.responseText); //设置解析完的结果为传入的成功函数的参数,使用后续函数操作
}else{
if(fnFaild){ //如果获取内容失败且存在失败时处理函数,则执行
fnFaild();
}
}
}
};
}
onreadystatechange事件
readyState属性:请求状态
0(未初始化)还没有调用open()方法
1(载入)已调用send()方法,正在发送请求
2(载入完成)send()方法完成,已收到全部响应内容
3(解析)正在解析响应内容
4(完成)响应内容解析完成,可以在客户端调用了
status属性:请求结果(200:成功; 404、300+、500+:都是有错误,如未找到文件)
responseText:请求得到的内容
var oBtn=document.getElementById('btn1');
oBtn.onclick=function(){
ajax('abc.txt?t='+new Date().getTime(),function(str){
alert(str);
});
};
}
var aBtn=document.getElementsByTagName('input');
var oDiv=document.getElementById('div1');
var i=0;
for(i=0;i<aBtn.length;i++){
aBtn[i].index=i;
aBtn[i].onclick=function (){
ajax(this.index+1+'.txt?t='+new Date().getTime(), function (str){ //function(str){}成功后执行的匿名函数。
});
};
}
};
var oBtn=document.getElementById('btn1');
oBtn.onclick=function(){
ajax('data.txt?t='+new Date().getTime(),function(str){
//str->'[1,2,3,4]'
var arr=eval(str);
alert(arr[3]); //此时结果为4。若不进行eval()处理那么返回的结果是一个字符串,结果为2
});
};
}
var oBtn=document.getElementById('btn1');
oBtn.onclick=function(){
ajax('data.json?t='+new Date().getTime(),function(str){
//str-> [{a: 12, b: 5}, {a: 8, b: 9}]
var arr=eval(str);
alert(arr[0].b); //此时结果为5。eval()对数据分割成多维数组
});
};
}
var oUl=document.getElementById('ul1');
var aBtn=document.getElementsByTagName('a');
var i=0;
for(i=0;i<aBtn.length;i++){
aBtn[i].index=i;
aBtn[i].onclick=function(){
// 需要请求的三个文件名为:page1.txt page2.txt page3.txt
ajax('page'+(this.index+1)+'.txt?t='+new Datd().getTime(),function(str){
var aData=eval(str);
oUl.innerHTML='';
for(i=0;i<aData.length;i++){
var oLi=document.createElement('li');
//page1.txt中的数据为:[{user: 'blue', pass: '123'}, {user: 'aaa', pass: 'jjfhier'}, {user: 'leo', pass: '123456'}] (另两个类似)
oLi.innerHTML='<strong>'+aData[i].user+'</strong><i>'+aData[i].pass+'</i>'; //此处输出格式根据需要更改
oUl.appendChild(oLi);
}
};
}
}
<body>
<ul id="ul1">
</ul>
<a href="javascript:;">1</a>
<a href="javascript:;">2</a>
<a href="javascript:;">3</a>
</body>