Angular:渲染大量DOM元素的速度更快
Angular: rendering a lot of DOM Elements faster
我开发了一个使用Angular开发的日历应用程序,遇到了渲染性能问题。我看了很多关于ngRepeat渲染性能的主题,我尝试了bindonce,但我仍然被卡住了。
我创建了一个plunker来向你展示我的问题。http://plnkr.co/edit/UHVC5a?p=preview-它再现了我的应用程序的逻辑。
假设这是一个有5行(每周一行)的日历,每行有150个活动(我知道这是个很大的数字,但对于非常忙碌的人来说,这很常见)。
正如您所看到的,渲染非常缓慢。这是我可以改进的地方吗?你有什么想法吗?
非常感谢。
我注意到每个事件的模板都使用了一些绑定。几个建议:
-
如果使用类似https://github.com/pasvaz/bindonce会加快速度。
-
或者,您可以在指令中手动设置每个元素的HTML,而不是使用绑定。
-
每个指令使用中都有一个异步函数getColor。这是否意味着将有150*5=750个呼叫到服务器?架构可能值得重新思考,因为这是相当多的,而且无论Angular以多快的速度成为都可能需要时间
-
如果这些异步调用确实是必要的/不是每次都调用服务器,那么您只能同时/或分组地更改指令的所有实例中的$scope变量,例如,将promise添加到数组中,定期检查它以在已解析的数组上运行一些函数,或使用$q.all。
相关文章:
- Html画布绘制速度因画布元素过多而减慢
- 是否可以加快向DOM添加一组元素的速度
- 如何计算另一个元素上滚动速度的乘数,使它们同时到达终点(视图顶部)
- Angular:渲染大量DOM元素的速度更快
- jQuery:计算可见元素-效率/速度问题
- JavaScript动画被上面的元素减慢了速度
- 操作“虚构”元素的速度是否比当前在 DOM 中的元素快
- 使用速度.js对可拖动元素进行动画处理
- Javascript以可变的角度和速度为元素移动制作动画
- 如何在jQuery中以相同的速度对每个元素进行动画处理
- 更改 animate() 速度,同时将其动画化并将鼠标悬停在元素上
- 普通<视频>元素或视频插件加载速度更快
- 与FV或GoogleChrome相比,IE中DOM元素的替换速度较慢
- 在设置元素动画的过程中降低速度
- 为什么每次删除和重新创建目标元素时动画速度都会增加
- IE8(javascript):在SELECT元素中加载大量选项的速度非常慢
- 列表类元素(索引).渐变(某些速度)不起作用
- 这个页面上不同的元素似乎以不同的速度滚动.这是怎么做到的?
- 在dom内有大量输入标签的IE中,聚焦和/或选择输入元素的速度很慢
- 速度JS和动态添加的DOM元素