Js中防抖和节流的区别,论如何避免重复点击

JavaScript016

Js中防抖和节流的区别,论如何避免重复点击,第1张

在进行窗口的resize、scroll,输入框内容校验,防止按钮重复点击等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,体验糟糕。所以可以采用debounce(防抖)和throttle(节流)的方式来减少调用频率,同时又不影响实际效果。

我们一起先来看看防抖和节流的区别

防抖函数 debounce

节流函数 throttle

如何调用

防抖和节流都利用了闭包,首先就调用了debounce和debounce方法,把内部的方法返回出去,下次自己执行,以后有时间我再写一下闭包吧,所以我还留下一个问题,这样会不会造成内存泄漏?

由于题目描述的不是非常清楚,我猜测你可能是用js给页面元素添加了某些事件函数,触发的时候导致页面出现抖动的“意外”。一般来说,出现这样的情况是事件触发改变了正常文档流中元素的尺寸,包括width、padding和border。你说的box-sizing是解决办法之一,但是低版本的ie不支持(想必每一个写前端页面的,遇到要兼容ie6-8都想骂人),这时候可能让元素脱离文档流是办法之一,比如添加position:absolute属性。当然,由于元素脱离文档流对整个布局影响较大,这还得根据整个文档的布局来选择解决方法。