0

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

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

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

看着系统监视器,我可以看到浏览器(FF、chrome 和 opera)正在非常激烈地消耗内存,当我反复将鼠标悬停在这些框上时......
- 也删除()'ing邮票(以及它们的事件) ) 不会让浏览器再次变得更快。在我重新加载整个页面之前,它一直非常缓慢。

关于我可能做错了什么的任何想法?
PS:实际代码有几百行,所以我现在就让你免于痛苦:)

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

4

1 回答 1

1

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

(提示是:“内存泄漏”不是永久性的——只是恢复速度比预期慢得多)

于 2012-10-30T13:53:18.590 回答