我很难解释为什么以下代码在IE9中运行慢而不是IE8!
这是一些测试代码,在OS X,WinXP和Win7上的(最新)FF / Chrome / Safari中大约半秒内运行顺畅加上 IE7& 8在WinXP上(为简单起见,我删除了使它在IE6中工作的调整)。
由于某些原因我无法解释,它在IE9中很糟糕,缓慢而笨重。减少setTimeout的时间会使它更快但不会少于生涩。
我尝试删除和标记一些可能是阻塞点的东西(例如Math.min ......所有这些都没有变化。
我很难过......任何人都可以指出我正确的方向吗?...最好是不需要浏览器嗅探的人吗?
这是测试代码......
<div id = 'panel' class='noShow' style='background-color: #aaa;'>
<div id = 'wrapper' class='slideWrapper'>
<p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p><p>xxxxxxxxxxx</p>
</div>
</div>
<script type = 'text/javaScript'>
var e = document.getElementById('panel');
var w = document.getElementById('wrapper');
w.style.overflow = 'hidden';
w.style.height = '1px';
var sh = w.scrollHeight;
show();
function show()
{
setTimeout(function()
{
w.style.height = Math.min(sh, (w.offsetHeight + Math.ceil(sh/15))) + 'px';
if(
(w.offsetHeight < sh)
)
{
show(e);
}
else
{
w.style.height = 'auto';
}
}, 20);
}
</script>
答案 0 :(得分:4)
IE9默认使用VMware虚拟机上的软件渲染(截至2011年7月8日),应该会在不久的将来发布一个修补程序,但每个blog post都没有给出时间表。
答案 1 :(得分:1)
您运行的是64位版本的IE 9还是32位版本? 64位版本没有运行Chakra,这是32位版本的优化JavaScript引擎
答案 2 :(得分:1)
在虚拟化环境中运行时,总会有奇怪的性能变化。驱动程序的选择以及软件如何卸载处理将产生影响。您是否尝试更新系统上的驱动程序?