Jquery CPU使用率

时间:2010-04-25 12:17:01

标签: javascript jquery jquery-animate cpu-usage

我正在使用Jquery使图像水平滚动浏览我的页面。唯一的问题是它使用了大量的cpu使用。在Firefox中的单核笔记本电脑上高达100%。 什么可能导致这???

Jquery

<script>
    jQuery(document).ready(function() {

    $(".speech").animate({backgroundPosition: "-6000px 0px"}, 400000, null);
    });

    </script>

CSS

.speech {
    /*position:fixed;*/
    top:0;
    left:0px;
    height:400px;
    width:100%;
    z-index:-1;
    background:url(/images/speech.png) -300px -500px repeat-x;
    margin-right: auto;
    margin-left: auto;
    position: fixed;
}

HTML

<div class="speech"></div>

4 个答案:

答案 0 :(得分:12)

它占用了CPU资源,因为您要求浏览器在很长一段时间内每秒多次重新绘制图像。那不是免费的。

答案 1 :(得分:11)

如果有人在使用jQuery动画时寻找高CPU使用率的解决方案(就像我一样),那么值得注意的是{joo 1.4.3中添加了jQuery.fx.interval因此你可以控制动画间隔率。

使用示例(将其设置为50-70左右使我的动画保持平稳,我注意到CPU使用率下降到大约10-20%):

jQuery.fx.interval = 50;

答案 2 :(得分:0)

如果这是与内存cpu相关的问题,那么你可以使jQuery函数调用的结果无效。如果你的调用返回一个jQuery对象,那么在调用之后你可以将它设置为null:

var tmp = $(".speech").animate({backgroundPosition: "-6000px 0px"}, 400000, null);
});
tmp = null;

注意:如果这是与内存泄漏有关的任何方式,那么它与循环引用有关 通过设置为null,您可以打破它。

尝试一下,如果你有时间发帖,我想知道结果。

答案 3 :(得分:0)

实现此目标的最佳方法是使用http://www.spritely.net/download/

等插件