我遇到了一个奇怪的问题,并且相信对这个问题的额外关注会有所帮助。
我们正在为Internet Explorer 8中的应用程序进行性能测试。我们有一个表视图,在第一列中是一个可以单击以启动模式窗口的锚标记。我们注意到一个问题,即内联点击事件导致对innerHTML的调用在大量行(大约150)的情况下减慢多达2秒。
经过调查,我发现如果每行都有相同的参数传递给内联onclick,性能很快。这是html的样子......
<dl id='a' class='result-info odd'>
<dd id='b' class='table-cell'><a
onclick='javascript:SampleNamespace.LaunchModal(10.0);'>Column 1</a></dd>
<dd id='b' class='table-cell'>Column 2</dd>
<dd id='c' class='table-cell'>Column 3</dd>
</dl>
当然,该内容重复了150次。
现在,如果我更改它以使每行都有一个传递给SampleNamespace.LaunchModal的不同的值,则性能会下降。
还有其他人遇到过这种情况吗?关于在使用内联onclick时innerHTML性能降低的原因的任何线索?我目前的理论是innerHTML在遇到onclick时会进行某种处理,并且当参数相同时会进行优化。
非常感谢任何帮助,谢谢!