【发布时间】:2020-05-21 17:55:27
【问题描述】:
我们使用 PrimeNG 的 Turbo 表和动态列来显示每页 1000 条记录。启用了服务器端分页和排序。这在 Chrome 中运行良好,但在 IE 中在排序、分页或更新所有记录时速度非常慢。一旦服务器响应在约 9 秒内返回,IE 将冻结 2 分钟,然后显示数据。另外,表格使用 ngSwitch 来确定列的内容,例如,有的列显示图标,有的显示文本区域等。
启用 prodMode 有助于显着改善页面加载,这与现在的 Chrome 相当,但是我们在排序、分页和更新记录时仍然存在性能问题。
我们通过移除 ngSwitch 测试了性能,并观察到了轻微的改进 - 减少了 10 秒。但是,我们需要 ngSwitch 功能,因此删除它确实不是一种选择,除非我们可以使用其他替代方法。无论如何,它并不能完全解决我们的问题。
感谢任何帮助!
【问题讨论】:
-
您是否使用过 F12 开发工具的“性能”选项卡来检查哪个部分会降低 IE 的性能? IE中的控制台有错误吗?此外,您可以尝试使用virtual scroll。它假装拥有所有物品,但实际上同时只显示一定数量。我认为它会让您的 DOM 保持轻量并具有更快的性能。
-
IE 每次启动开发工具时都会挂起!另外,我在控制台中看不到任何错误。我确实尝试过使用虚拟滚动,但它不适用于我们的用例。用户需要能够一次选择页面上的全部或部分记录并对其执行操作。为此,我们还提供了 Turbo Table 的上下文菜单功能。
标签: performance internet-explorer-11 angular8 ng-switch primeng-turbotable