1.防抖函数假定两次 Ajax 通信的间隔不得小于2500毫秒,上面的代码可以改写成下面这样。 $('textarea').on('keydown', debounce(ajaxAction, 2500));function debounce(fn, delay){ var timer = null; // 声明计时器 return function() { var context = this; var args = arguments; clearTimeout(timer); timer = setTimeout(function () { fn.apply(context, args); }, delay); };} 上面代码中,只要在2500毫秒之内,用户再次击键,就会取消上一次的定时器,然后再新建一个定时器。这样就保证了回调函数之间的调用间隔,至少是2500毫秒。
2.Vue中使用debouce防抖函数创建一个 debounced (防抖动)函数,该函数会从上一次被调用后,延迟 wait 毫秒后调用 func 方法。 debounced(防抖动)函数提供一个 cancel 方法取消延迟的函数调用以及 flush 方法立即调用。 可以提供一个 options (选项) 对象决定如何调用 func 方法,options.leading 与|或 options.trailing 决定延迟前后如何触发 (注:是 先调用后等待 还是 先等待后调用)。
下载地址: Vue3+Vite+TS实现二次封装element-plus业务组件sfasga vue实现自定义"模态弹窗"组件实例代码
|