一、背景
开发者使用Ajax请求网络,获取到了返回的结果,但开发者不想将回调函数写的过于冗长,因此希望将Ajax请求的返回值存储到一个变量中,方便后期取用。
二、代码部分
代码部分如下所示:
var Ajax = {
resp:"",
requ:function(){
//定义that后即使在回调函数中也可更改resp
var that=this;
//创建Ajax对象(略去firefox和老IE的写法)
var xmlhttp=new XMLHttpRequest();
//监听响应并添加回调函数
xmlhttp.onreadystatechange=function(){
//在回调函数中更改resp
if(xmlhttp.readyState==4 && xmlhttp.status==200){
that.resp=xmlhttp.responseText;
}
}
//发送网络请求
xmlhttp.open("GET","url",true);
xmlhttp.send();
}
};
console.log(Ajax.resp);
三、总结
通过预先引入一个that,以便在后期对外部成员发生作用,这就是Ajax查询结果转存至外部变量的核心思想。