Angular 2 性能 IE11 *ngFor
Angular 2 performance IE11 *ngFor
我正在尝试 Angular 2,我注意到在使用 *ngFor 超过 1500 个项目循环时,Internet Explorer 11 的性能非常慢。 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);
有人遇到同样的问题吗?任何提高性能的解决方法或技巧?
提前致谢。
问题是 IE 没有 Map
的本机实现。 polyfill 的 set
和 get
函数非常慢(与它们的原生对应函数相比)并且占用大部分时间:
也许 - 或者希望 - Map
的其他 polyfill 比 es6-shim
.
更快
更新:
我已经用 core-js 测试了您的代码,它的性能似乎更接近本机实现的性能。
我正在尝试 Angular 2,我注意到在使用 *ngFor 超过 1500 个项目循环时,Internet Explorer 11 的性能非常慢。 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);
有人遇到同样的问题吗?任何提高性能的解决方法或技巧?
提前致谢。
问题是 IE 没有 Map
的本机实现。 polyfill 的 set
和 get
函数非常慢(与它们的原生对应函数相比)并且占用大部分时间:
也许 - 或者希望 - Map
的其他 polyfill 比 es6-shim
.
更新:
我已经用 core-js 测试了您的代码,它的性能似乎更接近本机实现的性能。