初次接触防抖与节流,看看原理、实现与区别
在看这篇文章之前,如果你还不知道apply、call、arguments之间的区别以及作用,那么建议你先去看一看这些内容。直接坐飞机过去了解一下
apply、call、arguments之间的区别以及作用
一、函数防抖(debounce)
1、原理
当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时。
2、使用场景
按钮提交场景:防止多次提交按钮,只执行最后提交的一次
搜索框联想场景:防止联想发送请求,只发送最后一次输入
在进行窗口的resize、scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用debounce(防抖)和throttle(节流)的方式来减少调用频率,同时又不影响实际效果。
3、实现
1、简单实现
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p>
<p>防抖测试</p