Angular2在IE中很慢,使用core-js



我看到我创建的 angular2 应用程序在 IE11 中比其他浏览器慢得多(大约 ~5 倍(。在IE11中,从网格中的数据呈现,下拉菜单,分页很慢,而同样是超快的,并且在其他浏览器中按预期工作。当我用谷歌搜索时,我看到使用 core-js 和使用 enableProdMode(( 可能会提高 IE 的性能。我已经启用了 enableProdMode((,但我不清楚如何使用 angular2 应用程序连接 core-js。我已经将core-js作为依赖项包含在内并安装了它。那么下一步要连线的东西是什么。?

我在 angular 6 中的问题是对函数进行的输入绑定:

<app-my-component [model]="getMyModel()"></app-my-component>

我将其更改为变量

<app-my-component [model]="valueOfGetMyModel"></app-my-component>

这个简单的更改为我修复了一个主要的性能问题。此外,该函数在IE中使用了polyfill函数,而其他浏览器的本机实现没有显示任何显着问题。

作为最终修复,我还将 changeDetection 策略更改为 onPush,因为此组件在页面中有 15 个实例。

请使用Angularcli commondline创建角度项目

使用 ng build --prod 编译您的 angular 项目

这将适用于与Chrome相同的IE。我已经在我的应用程序

>

将以下库作为 polyfills.ts 的一部分使我的应用程序更快,但它的性能从未与 Chrome 相提并论。

import 'core-js/client/core';
import 'zone.js/dist/zone';
import 'rxjs/bundles/Rx';
import '@angular/core/bundles/core.umd';
import '@angular/common/bundles/common.umd';
import '@angular/compiler/bundles/compiler.umd';
import '@angular/platform-browser/bundles/platform-browser.umd';
import '@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd';`

请注意,添加这些文件会大大增加捆绑包的大小。

最新更新