【问题标题】:IE9 Javascript slower than IE8 - that's weird!IE9 Javascript 比 IE8 慢 - 这很奇怪!
【发布时间】:2011-04-08 00:25:08
【问题描述】:

我很难解释为什么下面的代码在 IE9 中比在 IE8 中运行

这是一些测试代码,在 OS X、WinXP 和 Win7 plus IE7 和 8 上的(最新)FF/Chrome/Safari 中大约半秒内顺利运行(为简单起见,我删除了使其在 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>

【问题讨论】:

    标签: javascript internet-explorer-9


    【解决方案1】:

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

    【讨论】:

    • 感谢@TodK ...非常有帮助...我想这可以解释它
    【解决方案2】:

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

    【讨论】:

    • 好问题...感谢您的提醒。 VMWare Fusion 3 中的 Win7 64 位 ... 为遗漏道歉。
    • 啊!...好问题... VMWare Fusion 3 中的 Win7 64 位...抱歉省略了该数据。
    • 糟糕!对不起,双重发布......我点击了!我想这可能是我的解释。我将下载 32 位版本并尝试并报告……不过可能需要几天时间。
    • 我是说IE 9的32位版本,在win 7 64位上运行没问题
    • 啊……这对我来说是新的……我会检查并报告
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2013-01-16
      • 2012-03-27
      • 2015-03-26
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-08
      相关资源
      最近更新 更多