【发布时间】:2011-10-09 01:58:35
【问题描述】:
我已经做了一段时间的 web 应用程序,确实注意到很久以前 CPU 使用率有点高,但是开发已经停止了一段时间。
最近我又开始开发了,发现一个GIF动画图片作为背景图片显示后CPU使用率变高了。
我使用 Ajax 更新内容并将 CSS 类应用于元素以显示加载指示器。内容加载完成后,我删除了 CSS 类。如果我注释掉包含 GIF 的样式表中的类,一切看起来都很正常。
我已经在 Internet Explorer 7 和 Internet Explorer 8 中对其进行了测试。
可以做些什么来缓解这个问题?
var blabla = function() {
var element = $('id of element');
element.addClassName('a css classname');
new Ajax.Request({some parameters},
onSuccess: function() {
element.removeClassName('a CSS classname');
....
},
onFailure: function() {
element.removeClassName('a CSS classname');
....
},
onComplete: function() {
element.removeClassName('a CSS classname');
....
}
}
}
【问题讨论】:
-
好吧,动画不可避免地会占用 CPU 周期。使用率到底有多高,电脑有多强大?
-
您没有发布任何代码或描述任何关于动画的有意义的内容,尽管我可以理解动画背景会导致 CPU 使用率高,具体取决于 PC。据推测,整个窗口必须连续多次重绘自己。
-
我说的是动画被移除之后。小图像〜20x20px。 CPU大约是20%。在不同的电脑上也一样。代码无非就是 $('id').addClassName('loading_indicator');和 $('id').removeClassName('loading_indicator');我正在使用原型。
-
这只是一个猜测:无论动画多么小,如果它被设置为整个背景,整个窗口必须重新绘制自己,尽管看起来效率很低。如果与动画背景无关,那么您的问题具有误导性且不完整。也许发布所有相关代码以及页面链接,以便人们可以在这里实际做一些事情。
-
在图像也被移除后,窗口是否必须重新绘制自身?
标签: html css internet-explorer-8 internet-explorer-7