angular - Angular - 绑定大量数据时 IE 没有响应问题
问题描述
当我将响应绑定到组件变量时,我的服务返回超过 7000 条记录,然后屏幕进入无响应模式。这仅特定于 IE。同样,我在 UI 中有 3 个下拉菜单。我也尝试过解析器,但对我不起作用。服务调用完成后屏幕变为无响应。
组件.ts
this._myservice.getData(this.param1).subscribe(response => {this.Capabilities = response.json()});
组件.html
<ul class="dropdown-menu">
<li *ngFor="let capability of Capabilities;trackBy:capability?.Name" id="{{capability.Id}}">
<a href="javascript:void(0);" id="{{capability.Id}}">{{capability.Name}}</a>
</li>
</ul>
解决方案
7000条记录!!!记录量很大!!!使用您的代码,您尝试同时将所有记录添加到 dom 中:
<li *ngFor="let capability of Capabilities;trackBy:capability?.Name" id="{{capability.Id}}">
因此,您的浏览器将显示 7000 个原始项目(大量内存消耗)。
对于大量记录,我认为最好通过“虚拟滚动”查看: https ://material.angular.io/cdk/scrolling/overview
https://medium.com/front-end-weekly/how-to-use-virtual-scrolling-using-angular-7-cdk-9802110111fa
和一个演示:https ://stackblitz.com/edit/angular-cdk-demo-virtual-scroll?file=app%2Fapp.component.html
=> 如果您在演示中按 F12,您会看到 app-virtual-scroll 中仅显示少数元素=> 更好的性能
推荐阅读
- python - Game slows down after adding bit of code (pygame)
- php - 在 WooCommerce 我的帐户订单视图上的订单项表中添加自定义列
- macos - 在 iOSX 上颤动
- python - types.SimpleNamespace 是如何实现的?
- node.js - Multer没有在nodejs中获取文件
- android - 错误:无法使用 apktool 重建 apk
- android - 谷歌地图意图未显示正确的缩放级别
- c++ - 在 MSVC C++ 中强制内联 lambda
- javascript - 遍历一个对象,并为对象中的每个属性返回一个组件
- angular - 如何在 express-JWT 中获取授权令牌?