首页 > 代码库 > 防抖动
防抖动
1假如有一个 doThings() 的方法来响应 window.onresize 事件,但这个方法执行一次需要消耗一定资源,因此不希望它频繁的执行,于是我们不直接将 doThings() 绑定到 window.onresize ,而是再定义一个 handleResize() 的方法专门处理 window.onresize,在这个方法里至少过 50ms 才调用一次 doTings(),并且每隔 200ms 必执行一次 doTings(),请实现 handleResize() 方法。 2 3 参考答案: 4 function doThings() { 5 // a lot of things 6 } 7 function handleResize() { 8 var timer = null, 9 delay = 50,10 must_do = 200,11 last_time;12 return function() {13 clearTimeout(timer);14 var now_time = +new Date;15 if (!last_time) {16 last_time = now_time;17 } else if (now_time - last_time > must_do) {18 doThings();19 last_time = now_time;20 } else {21 timer = setTimeout(function() {22 doThings();23 last_time = +new Date;24 }, delay);25 }26 };27 }28 window.onresize = handleResize();
防抖动
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。