JavaScript中的防抖和节流是常用的函数技巧,可以有效地提升页面的性能和用户体验。
防抖是指在一段时间内多次触发同一个函数,只执行最后一次触发的函数。
下面是一个简单的防抖函数实现:
function debounce(func, delay) { let timer = null; return function() { const context = this; const args = arguments; clearTimeout(timer); timer = setTimeout(function() { func.apply(context, args); }, delay); } }
以上代码中,debounce函数接受两个参数:要执行的函数和延迟时间。函数内部定义了一个计时器timer,每次调用debounce函数时,都会清除之前的计时器,并重新开始计时。当计时器计时结束时,最后一次触发的函数会被执行。
节流是指在一段时间内多次触发同一个函数,只执行一次触发的函数。
下面是一个简单的节流函数实现:
function throttle(func, delay) { let timer = null; return function() { const context = this; const args = arguments; if (!timer) { timer = setTimeout(function() { func.apply(context, args); timer = null; }, delay); } } }
以上代码中,throttle函数接受两个参数:要执行的函数和延迟时间。函数内部定义了一个计时器timer,每次调用throttle函数时,如果计时器不存在,则会立即执行函数,并重新开始计时。如果计时器存在,则会忽略该次调用。
防抖和节流是常用的函数技巧,可以有效地提升页面的性能和用户体验。通过本文的讲解,相信大家已经对防抖和节流有了更深入的了解。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com