2017-01-18 W.Y.
防抖(Debounce)和节流(Throttle)都是用来控制某个函数在一定时间内执行多少次的技巧,两者即相似又不同。 我们无法直接控制 DOM 事件触发频率,但我们可以在事件绑定和函数执行之间加一个控制层,所以当我们绑定 DOM 事件的时候,加上防抖或节流的函数变得特别有用。 more 看下面滚动事件的例子: 当使用触控板,滚动滚轮,或者拖拽滚动条的时候,一秒就可以触发 30 次事件。经测试,在移动设备上轻轻滚动一下,一秒可以触发 100 次之多。这么高的执行频率是你期待的吗? 早在 2011 年,Twitter 就出现了一个问题:当向下滚动页面的时候,页面会变得很卡顿。John Resig 发表了一篇博客解释这个问题 继续阅读 »
2015-06-10 W.Y.
参考原文:7 Essential JavaScript Functions 以下是意译。 早期,由于浏览器厂商对 JavaScript 实现不同,我们通常需要一些简单的函数来实现某些边缘特性,甚至某些基本特性,比如 addEventListener 和 attachEvent。现在,虽然时代进步了,但仍有一些函数需要开发者掌握,以便于性能优化和快速开发。 more 去抖 Debounce 去抖(debounce)函数可以提高某些事件绑定的性能,如果你没有为 scroll、resize 和 key* 事件使用去抖函数,你的代码很可能是性能低下的,下面是一个 debounce 函数的实现: ```javascript // 返回 继续阅读 »