一、代理proxy
1.代理的基本添加使用
proxy 用于修改某些操作得默认行为 可以产生拦截得效果,相当于中间商
其中参数target 即将检测得对象 handler处理的函数
let proxy = new Proxy(target,handler);
2.拦截的操作1 获取操作
当我们获取对象的某个属性时进行相应操作,当我们调用proxy.name
第一个参数 代理的对象 第二个参数 对象的key值 第三个参数定义的代理对象(key值就是我们调用时的属性)
let proxy = new Proxy(obj,{
//get 代表获取
get:function(target,key,property){
console.log(target,key,property)
// 函数内部,去处理业务逻辑得地方
return target[key];
},
})
console.log(proxy.name)
3.拦截操作2 设置操作时进行的处理set
set代表设置得时候所执行得函数
第一个参数是我代理的对象 第二个参数 就是这个对象的key值 第三个参数 即将更改得值(key值就是我们更改的属性名)
let proxy = new Proxy(obj,{
set:function(target,key,value){
target['key']=value;
console.log(target,key,value)
}
})
proxy.name = 'lisi';
二、同步异步
1.同步
不点确定就不会继续执行 这个代码没执行完不会继续执行
alert(1);
console.log("aa");
2.异步
定时器与下边同时执行 不会等待上边代码执行完毕 (异步)
setInterval(
()=>{
console.log(4);
},10000
)
console.log(5);
三AJax(不刷新页面就可以更新网页)
1.创建XMLHttpRequest对象(如果浏览器不支持XMLHttpRequest,需要手动调用ActiveObject方法)
var xhttp;
if(window.XMLHttpRequest){
xhttp=new XMLHttpRequest();
}else{
//code for Ie5 Ie6
xhttp=new ActiveXObject('Microsoft.XMLHTTP');
}
2. 向服务器发送请求
参数:请求方式get|post 请求地址 是否异步
xhttp.open('GET','ajax_info.txt',true);
xhttp.send();
3. 服务器响应
<1>readyState数值对应意义:
0:请求未初始化
1:服务器连接已建立
2:请求已接受
3:正在处理请求
4:请求已完成且响应已经就绪
<2>status状态码:
200:"OK"
403:"Forbidden"不允许访问
404:"Page not found" 地址找不到
xhttp.onreadystatechange=function(){
if (this.readyState==4&&this.status==200){
document.getElementById("demo").innerHTML=this.responseText;
}
};
</script>