节流:每隔一段时间后执行一次,也就是降低频率,将高频操作优化成低频操作,通常使用场景: 滚动条事件 或者 resize 事件,通常每隔 100~500 ms执行一次即可。
实现逻辑:规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效 实现代码:
//定时器
const throttle = function (func, delay) {
let timeoutId = null;
return function (...args) {
if (!timeoutId) {
timeoutId = setTimeout(function () {
func.apply(this, args);
timeoutId = null
}, delay);
}
}
}
// 时间戳
const throttle = function(func, delay) {
let prev = Date.now();
return function(...args) {
let now = Date.now();
if (now - prev >= delay) {
func.apply(this, args);
prev = Date.now();
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。