.mousemove和内存,我是否需要优化或不?

我在这里创建了一个简单的轻型测试的演示:http://jsfiddle.net/CGr9d/

当我使用Chrome开发工具记录内存使用情况时,我得到这个:http://cl.ly/LSDl,它基本上一直持续到某个点,然后再次下降并重新开始,直到它再次达到前一个高点。

这是正常的吗? 有没有什么办法可以优化我的代码以减少内存密集?

这是我的鼠标移动功能:

$('body').mousemove(function(e) {
  //2000 is half the image width/height, of course used for centering
  $('.light-circle').css({ backgroundPosition: (e.pageX-2000)+'px '+(e.pageY-2000)+'px' });
});

谢谢。


如果与选择器.light-circle匹配的元素不发生更改,可以像这样优化一下:

var circles = $('.light-circle');
$('body').mousemove(function(e) {
  //2000 is half the image width/height, of course used for centering
  circles.css({ backgroundPosition: (e.pageX-2000)+'px '+(e.pageY-2000)+'px' });
});

这样你就不会在每次鼠标移动时重新查询DOM,分配新的jQuery对象等等。

但在收集垃圾的环境中看到内存增加,然后减少然后再增加,这是非常正常的。

链接地址: http://www.djcxy.com/p/66963.html

上一篇: .mousemove and memory, do I need to optimize this or not?

下一篇: Can I access an object in C++ other than using an expression?