javascript中setTimeout的内存泄漏问题

时间:2013-05-28 06:43:07

标签: javascript

我有一个javascript代码来控制动画移动div。在此我使用setTimeout来使div移动。您可以单击以下链接播放动画。

     `http://jsfiddle.net/dudling007/PfPzj/3/`

问题在于,在播放动画后,每当我在暂停和恢复按钮上点击几次时,它会占用大量内存,点击暂停按钮也会变得非常慢。我从MAC OSX的活动监视器中看到了%CPU和实际内存消耗。有人可以帮我解决在点击暂停按钮10到14次后占用大量内存的代码中的问题。

1 个答案:

答案 0 :(得分:1)

发生内存泄漏是因为每次调用$('#pause_button').click方法时都会设置moveCard事件。按钮绑定应移出 “对象”循环。

您可以使用firebug的工具链接firefox来检查javascript的控制台日志。 这是您登录暂停按钮的示例。这应该只发生一次。 http://jsfiddle.net/Th6ha/1/

$('#pause_button').click(function() { 
console.log('pause pressed');
                      arrayObject.pause(wStart,lStart,wEnd,lEnd);
                      $('#resume_button').css('display','inline-block');
                      $('#pause_button').css('display','none');

                      }); 

您可以考虑使用jquery

的方法animate