我一直在编写一些基于mouseDown / mouseMove / mouseUp事件创建假选择矩形的代码。移动鼠标时矩形会更新,这种移动在Chrome中流畅,但在Internet Explorer和Edge中速度非常慢(在最新的Windows 10上使用最新版本)。
我几天来一直在努力解决这个问题,我无法理解为什么会这样。我一直在将我的代码减少到要点,以找出导致问题的原因,并且在确定此静态代码在IE中顺利运行后我陷入困境:
<tr *ngFor="let row of rows">
<th>Name</th>
<td>Fast</td><td>Fast</td><td>Fast</td><td>Fast</td><td>Fast</td>
</tr>
...而Angular 2生成的这些TD上的相同功能在Internet Explorer和Edge中的性能明显较差:
<tr *ngFor="let row of rows">
<th>Name</th>
<td *ngFor="let col of cols">Slow</td>
</tr>
我花了一些时间创建一个plnkr,其中包括两个版本之间的轻松切换,有助于在使用受影响的浏览器时显示问题:
如果有人真正知道他们正在做什么可以帮助阐明这一点,我会很高兴。 (值得指出的是,减少Angular生成的&lt; td&gt;元素的数量会降低受影响浏览器的性能影响,但由于真实项目的性质,减少可见单元格的数量很可能不是一种选择。)< / p>
注意:我已经设法使用最新版本的IE11在Windows 7系统上尝试此操作。这个系统明显慢于我之前试过的笔记本电脑,但是/没有/遭受这个问题。我是真正的gabberflasted。