10

我正在尝试 Angular 2,我注意到 Internet Explorer 11 上的性能在使用 *ngFor 超过 1500 个项目时非常缓慢。使用 IE11 大约需要 25 秒,而在其他浏览器上则不到 1 秒。

暂停调试器我注意到代码不断调用es6-shim.js 中的isNan函数。这里是调用堆栈:

在此处输入图像描述

在这里工作的 plnkr:http://plnkr.co/edit/sEujClHmuCbrydIiYQYL?p= preview。代码非常简单:

<ul *ngFor="#item of items">
    <li>Item: {{item.itemKey}}</li>
</ul>

//Load items simulating remote load
setTimeout(function(){
  for (let i = 0; i < 1500; i++) {
          self.items.push(new Item(i+""));
      }
},1000);

有同样问题的人吗?任何提高性能的解决方法或提示?

先感谢您。

4

1 回答 1

8

问题是 IE 没有本地实现Map. polyfill的setget函数非常慢(与它们的原生对应物相比)并且需要大部分时间:

在此处输入图像描述

也许 - 或希望 - 其他 polyfillsMapes6-shim.

更新:

我已经用core-js测试了你的代码,它的性能似乎更接近原生实现。

于 2016-04-12T11:07:50.260 回答