let timeout = null
function debounce(func, wait, query) {
// 清除定时器
if (timeout !== null) clearTimeout(timeout)
// 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法
timeout = setTimeout(function () {
typeof func === 'function' && func(query)
}, wait)
//使用debounce:参数1为方法、参数2为延时毫秒,参数3为方法的参数
debounce(getAgency, 1000, query)
防抖(延时请求)
于 2023-06-10 09:44:00 首次发布
该文章介绍了一个JavaScript防抖函数(debounce)的实现,它用于优化性能,确保在特定时间间隔后只执行一次函数。当连续触发事件时,如果在设定的等待时间(如1000毫秒)内没有再次触发,那么原始函数将在延迟后执行,接收的参数为query。此技术常用于长滚动、搜索查询等场景,以避免频繁调用昂贵的操作。
摘要由CSDN通过智能技术生成