防抖:核心-延迟执行。
当持续触发时,不会立即执行,而是等一等,只有一定时间内没有再触发事件,事件处理函数才会执行一次
例子:
1).开发中:搜索框,搜索提示。(如果服务器可以承受住没输入一个就可以发请求这种压力,可以不优化,因为这样用户体验度比较好)
优化:
如果加了防抖,不会立刻发送请求,而是等一等,等用户输完,一次性发送请求,获取搜索提示
怎么加:在要做的事情外加一个延时器,把每次开启的延时器手动关掉
2)生活中:坐电梯,如果一直按同一个楼层按钮,那么会等最后一次按按钮结束,等一定时间再关门,只执行一次
2.节流-立刻执行-当执行的过程中,就算你重复触发了,也不理你,只有当这次执行完了,才考虑执行下一次
在这件事情执行过程中,如果再触发先不理会,只有等执行完才考虑执行再次触发的事件
例子:
1)生活中-过山车:人上了过山车,过山车开到一半,又来了一波人想上车,一定是等这趟跑完了,才允许下一趟人上车
2)开发中:
(1)登录loading,就是节流
第一次点击登录,会立刻发送请求,发送请求的过程中,不会执行触发第二次的(不理你),只有第一次完成了,才考虑做第二次请求
(2)上拉加载,下拉刷新,也是节流
当滑到底部了,要发送请求,获取新的数据(发一个请求即可)
上拉刷新
1.loadIng =true 标记为加载中,请求正在发送中,只要是在loading中,不允许你发送第二次请求 ,2.请求完成了,的手动将loading改为false 请求完成了,如果不是loading状态,就允许发送请求----loading 是布尔值====》即节流阀