具有 1,000 行和 5,000 个输入的 Angular 表的缓慢渲染

Posted

技术标签:

【中文标题】具有 1,000 行和 5,000 个输入的 Angular 表的缓慢渲染【英文标题】:Slow rendering of Angular table with 1,000 rows and 5,000 inputs 【发布时间】:2016-01-01 10:24:48 【问题描述】:

我正在显示一个 Angular 表,其中包含大约 ~1,000 行和每行 5 个输入(总共 5,000 个输入字段)。这是一个标准的 Angular 表,行中带有 ng-repeat。

数据快速下载到客户端。但是 - 问题是缓慢的 Angular 渲染。

在 MacBook Pro 上,加载需要 10 秒。在 Chromebook 上,这需要 40 多秒。

我正在寻找一种懒惰的 RENDER 方法。我相信你们中的许多人都遇到过这个问题 - 谁能指出可能的解决方案?

【问题讨论】:

在单元格内使用分页和按需编辑来避免输入的所有监视 我们正在使用实时搜索,因此我们希望避免分页。您能否举例说明如何创建“按需编辑”?我们既有移动(触摸)用户,也有笔记本电脑,他们希望在输入字段之间切换(类似于 Excel 类型表)。 分页并不意味着你不能同时使用过滤。就地编辑的一个例子是x-editable 如何设置实时搜索过滤? (抱歉有问题,还在习惯 Angular) 很多关于使用角度过滤器的例子,包括在文档中。还有许多带有您提到的功能的表格/网格模块 【参考方案1】:
    使用分页 仅使用编辑模板和编辑按钮为每行添加输入 用户 $compileProvider.debugInfoEnabled(false) 删除调试类 尝试通过添加“track by”来利用您的项目 ID 如果您有只读的值,请使用一次绑定::property 如果您有许多表单字段,请尝试ng-model-options=" debounce: 250 尽可能使用 ng-if 代替 ng-show 以避免添加许多未显示的内容 在 ng-repeat 中使用 limitTo 来限制显示的项目数 使用 chrome 开发工具栏时间线来识别函数中的瓶颈

One of many good resources on our lovely web

And another one

【讨论】:

【参考方案2】:

因为问题在于渲染,您可以使用过滤器来限制 ng-repeat 返回的字段数量。然后只需对多余的行进行分页。

【讨论】:

啊是的忘记限制了。这也是加快速度的好方法。不错! 如果没问题,我也会将其添加到我的答案中。我给了你一个赞成票,所以应该没问题:) 我忘了添加 - 我们正在使用实时搜索。如何过滤以呈现仅在屏幕上可见的那些行?

以上是关于具有 1,000 行和 5,000 个输入的 Angular 表的缓慢渲染的主要内容,如果未能解决你的问题,请参考以下文章

是否有可能在几个时代内过度填充250,000个例子?

读取 100,000 个 .dat.gz 文件的最快方法

1-5-29:数字反转

使用1个端口或具有10,000+个传感器数据的多个端口进行nifi摄取?

牛客练习赛16 B求值

牛客练习赛16 E求值