封装的套路:
1.写一个相对比较完善的用例
2.写一个空函数,没有形参,将刚刚的用例直接作为函数的函数体
3.根据使用过程中的需求抽象函数
代码记录如下:
<script>
function ajax (method,url,params,done) {
method=method.toUpperCase();
var xhr=new XMLHttpRequest();
var tempArr=[];
if (typeof params=== ‘object‘) {
for(var key in params){
var value = params[key];
tempArr.push(key+‘=‘+value);
}
params=tempArr.join(‘&‘);
}
if (method===‘GET‘) {
url+=‘?‘+params;
}
xhr.open(method,url);
var data=null;
if (method===‘POST‘) {
xhr.setRequestHeader(‘Content-Type‘, ‘application/x-www-form-urlencoded‘);
data=params;
}
params=params || null;
xhr.send(data);
xhr.onreadystatechange=function () {
if (this.readyState!==4) return;
//reurn 无法再内部包含的函数中通过return给外部函数的调用返回结果
//由于异步模式下,这里的代码最后执行,所以不可能在外部通过返回的方法
done(this.responseText);
}
}
ajax(‘POST‘,‘add.php‘,{key1 : ‘value1‘,key2: ‘value2‘},function (res){
console.log(res);
});
</script>
暂时写到这里~
原文:https://www.cnblogs.com/Yaucheun/p/10487903.html