1.函数节流
有些操作需要更多的内存和CPU事件,但是我们又不得不实时监听执行。如当调整浏览器大小时onresize事件会连续触发。
可以看到只是一次简单的拖动窗口就让函数执行了49次。
这个事件一般用于浏览器调整大小时调整网页的布局,大小需要执行很多的DOM操作,恰恰这些操作都非常昂贵,很容易让浏览器崩溃。这时我们就可以使用函数节流的方法。
函数节流的核心事项
function throttle(method, context) {
clearTimeout(method.tId);
method.tId = setTimeout(function () {
method.call(context);
}, 500);
}
原理很简单,利用定时器,让函数执行延迟500毫秒,在500毫秒内如果有函数又被调用则删除上一次调用,这次调用500毫秒后执行.