jQuery mouseenter +留下杀戮性能

时间:2012-10-30 09:47:24

标签: jquery events memory-leaks

问题:每次我通过一对mouseenter-mouseleave事件处理程序时,我的浏览器变慢。

我有另一个(无关的)reziable()元素,这已经很慢了。但是在通过mouseenter-mouseleave事件进行~50次迭代之后,再次使用几乎无法使用 这就是我注意到问题的方法

场景:一堆标记大小的div每个都包含用户输入。当我将它们鼠标悬停在它们上方时,它们会膨胀以显示完整内容,当我将鼠标移出时,它们会再缩回到邮票大小。
在充气动画(负边距)开始之前,使用局部变量和全局变量进行一些计算,确定完整大小。萎缩只会使利润率回归零。

观看系统监视器,我可以看到浏览器(FF,chrome和opera)正在非常频繁地吃内存,当我反复鼠标悬停在这些盒子上时... - 同时删除()标记(因此它们的事件)不会再次使浏览器更快。在我重新加载整个页面之前,它一直很缓慢。

知道我可能做错了什么吗? PS:实际的代码是几百行,所以我现在可以免除你的错误:)

编辑:代码在这里:http://dagfordag.dk/tegn.js 函数tegnIkon()创建一个div,进行一些初始大小计算,然后附加这两个事件 之后不再有事件受到约束。

1 个答案:

答案 0 :(得分:1)

知道了!
我的(实时)toolTipper在后台疯狂地工作,每当我的鼠标后面出现一个新元素时,就会抛出setTimeouts()。 - 杀了它。现在一切都像丝绸一样光滑:D

(提示是:“内存泄漏”并非永久性 - 恢复速度比预期慢得多)