Javascript setInterval-如何设置良好的计时和性能
我正在编写一个简单的jquery插件,它允许我在特定的滚动位置向元素添加类。为了实现这一点,而不是绑定onScroll事件,我调用了一个setInterval函数来检查当前的Y页偏移量: 间隔=window.setIntervalueUpdate,25Javascript setInterval-如何设置良好的计时和性能,javascript,performance,setinterval,Javascript,Performance,Setinterval,我正在编写一个简单的jquery插件,它允许我在特定的滚动位置向元素添加类。为了实现这一点,而不是绑定onScroll事件,我调用了一个setInterval函数来检查当前的Y页偏移量: 间隔=window.setIntervalueUpdate,25 您看,我将间隔设置为25毫秒。我想知道这是否是一个正确的时间,以及性能如何有效地发挥作用。我认为性能方面您最好使用下面的代码,通过这种方式,您可以确保更新函数仅在运行更新函数完成时触发 function update() { //do stu
您看,我将间隔设置为25毫秒。我想知道这是否是一个正确的时间,以及性能如何有效地发挥作用。我认为性能方面您最好使用下面的代码,通过这种方式,您可以确保更新函数仅在运行更新函数完成时触发
function update() {
//do stuff
setTimer();
}
function setTimer() {
timeout = window.setTimeout(update(), 25);
}
为了提高动画制作时的性能,最好使用“requestAnimationFrame”。这样,当选项卡处于非活动状态时,浏览器不会一直在更新,它可能会进行一些额外的优化
大多数浏览器还不支持requestAnimationFrame,但是——当然——Paul Irish已经准备好了一个漂亮的polyfill:为什么不使用onscroll事件?我之所以这么问,是因为如果可能的话,我会尽量避免轮询。您应该从SetTimeOut的第一个参数中删除括号。我想了解的一件事是,您如何使用requestAnimationFrame设置清除间隔事件,您是否有过此方面的经验webkitCancelRequestAnimationFrame不是吗?它不应该是timeout=window.setTimeoutupdate,25;