JavaScript防抖与节流,深入浅出!
【摘要】 目录一、函数防抖(debounce)1. 什么是防抖?二.、函数节流2.1 定时器实现2.2 时间戳实现2.3 时间戳+定时器最后 一、函数防抖(debounce)1. 什么是防抖?函数防抖:在频繁触发某一个事件时,一段时间内不再触发该事件后才会去调用对应的回调函数,在设定间隔时间内如果下一次事件被触发, 那么就重新开始定时器,直到事件触发结束。规定时间内没有继续触发事件的前提下,再去调用...
一、函数防抖(debounce)
1. 什么是防抖?
函数防抖
:在频繁触发某一个事件时,一段时间内不再触发该事件后才会去调用对应的回调函数,在设定间隔时间内如果下一次事件被触发, 那么就重新开始定时器,直到事件触发结束。
规定时间内没有继续触发事件的前提下,再去调用事件处理函数;
具体如下面的例子所示:
-
总结一下思路
:1.定义一个节流函数
2.函数内部使用一个变量保存定时器
3.返回一个函数,函数内部定义:如果定时器已经存在就清除定时器,重新设置定时器
4.定义一个变量来接收debounce返回的函数
5.在事件的回调函数中直接调用上一步的变量接收的方法
二.、函数节流
函数节流
:在事件持续触发的前提下,保证一定时间段内只调用一次事件处理函数,就是函数节流;
函数节流实现的方式
:定时器、时间戳、定时器+时间戳;
2.1 定时器实现
思路
:
1.定义节流函数throttle
2.定义timer保存定时器
3.返回一个函数。函数内部定义:如果定时器不存在,设置定时器,间隔某一时间后将timer设置为null,如果在这之前事件再次触发,则定时器中的回调无效
2.2 时间戳实现
2.3 时间戳+定时器
最后
如果对您有帮助,希望能给个👍评论收藏三连!
博主为人老实,无偿解答问题哦❤
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)