javascript中scroll 事件的优化

最近再做项目时遇到的问题,如果给window绑定一个scoll事件,在chrome和firefox下都没有问题,但是在IE下面可能会比较影响效率,页面会比较卡。这是因为IE下面scroll事件触发的更频繁,如果在事件处理函数中做一些比较昂贵的处理(比如DOM的增删),那么就会影响页面的响应。不过我们可以通过一定的方法来优化scrooll事件,让他触发的不是那么频繁。


var timer = 0,
delay = 50; //这个值越小触发的越频繁
var handler = function() {
timer = 0;
//scroll事件发生时要做的事情
}

$(window).scroll(function() {
if (timer) {
clearTimeout(timer);
timer = 0;
}
timer = setTimeout(handler, delay);
});

PS:不过在项目中最后发现其实不是scroll事件造成的页面卡,还在寻觅中···
参考:JQuery: My ‘scroll’ event is CRAZY slow. What am I doing wrong?

发表评论

电子邮件地址不会被公开。 必填项已用*标注