angular - Angular 开发模式在 Internet Explorer 11 中确实很慢(但在较新的浏览器中很好)
问题描述
我正在运行一个 Angular 7.x 应用程序,该应用程序在 textareas 和 Angular Material 上很重,在 Internet Explorer 11 中使用它时似乎真的很慢。使用现代浏览器该应用程序似乎很好,包括 Edge,但使用 Internet Explorer 11 在 textarea 中输入严重滞后且无法使用。
在main.ts
文件中,如果我通过注释掉以下两行来启用应用程序在生产环境中运行,则它在 IE11 中运行得更加顺畅且延迟更少。
// if (environment.production) {
enableProdMode();
// }
这似乎非常hacky和错误,因为我正在“破解” main.ts 文件 - 我需要找到一个可以加速 IE11 的解决方案,但这似乎是一个肮脏的解决方案 - 有没有更好的方法让我获得这个好处?有没有更好的方法来优化 IE11?
解决方案
您可以使用 F12 开发工具的性能选项卡来分析导致 IE 性能下降的部分。如果可能的话,您可以使页面更轻,因为 IE 不能像现代浏览器那样处理程序。
您还可以参考此列表来检查是否有任何方法可以提高性能。正如清单中提到的,使用enableProdMode
确实是一种优化运行时的方法。
此外,如果*ngFor
您的代码中有,请不要忘记在其中使用trackBy
。此外,如果*ngFor
渲染大量元素,浏览器(尤其是较旧的浏览器)可能会变慢并需要更多时间来完成所有元素的渲染。为了减少渲染时间,您可以参考以下方法:
- 通过CDK或ngx-virtual-scroller应用虚拟滚动
- 减少
*ngFor
模板部分中呈现的 DOM 元素的数量。ng-container
尽可能使用
推荐阅读
- node.js - 使用 aws ARN 的 AWS Elasticcache Redis Connect
- node.js - 带有代理和证书的节点 httpAgent(带有 TLS 的 https-proxy-agent)
- python - 如何将圆形图像移动到大图像的确切中心位置?
- python - 根据同一数据框的另一列更新熊猫数据框中的列
- c# - 将 Unreal Engine 4 二进制保存文件中的字符串添加到列表/数组
- python - 如何解决 manage.py 中的这个语法错误?
- sql - from_tz - oracle from_tz 中的日期格式问题
- inno-setup - 在 Inno Setup 的 InfoBeforeFile 页面上显示带有超链接的文本
- javascript - 滚动时如何检测DIV的ID
- reactjs - 在 React JS 中显示数组中特定数量的项目