IE9 Javascript比IE8慢 - 这很奇怪!

时间:2011-04-08 00:25:08

标签: javascript internet-explorer-9

我很难解释为什么以下代码在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>

3 个答案:

答案 0 :(得分:4)

IE9默认使用VMware虚拟机上的软件渲染(截至2011年7月8日),应该会在不久的将来发布一个修补程序,但每个blog post都没有给出时间表。

答案 1 :(得分:1)

您运行的是64位版本的IE 9还是32位版本? 64位版本没有运行Chakra,这是32位版本的优化JavaScript引擎

答案 2 :(得分:1)

在虚拟化环境中运行时,总会有奇怪的性能变化。驱动程序的选择以及软件如何卸载处理将产生影响。您是否尝试更新系统上的驱动程序?