IE9 Javascript比IE8慢 - 这很奇怪!

Gee*_*Bee 5 javascript internet-explorer-9

我很难解释为什么以下代码在IE9中运行速度比IE8 !

这里有一些测试代码可以在OS X,WinXP和Win7上的(最新)FF/Chrome/Safari和WinXP 上的 IE7和8 中的大约半秒内平稳运行(为简单起见,我删除了使其在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>
Run Code Online (Sandbox Code Playgroud)

SQL*_*ace 1

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