angular-ui/ui-grid

GridRenderContainer.prototype.getMargin seems to to slowdown apps

Open

#4,909 创建于 2015年12月27日

在 GitHub 查看
 (0 评论) (2 反应) (0 负责人)JavaScript (2,496 fork)batch import
help wantedseverity: performance

仓库指标

Star
 (5,395 star)
PR 合并指标
 (30 天内没有已合并 PR)

描述

I profiled one of my apps with Batarang. i noticed that for a page with six smaller ui grid instances the GridRenderContainer.prototype.getMargin takes about 60% of the cpu time.

The method is called from a template:

$templateCache.put('ui-grid/uiGridRenderContainer', ...{ 'margin-left': colContainer.getMargin('left') + 'px', 'margin-right': colContainer.getMargin('right') + 'px' }...

The function loops over viewportAdjusters. Maybe it is worthwhile to optimize the method. For example, it filters out the adjustment results of many of the calls made:

if (adjustment.side && adjustment.side === side)

Such calls could be avoided. Or maybe there is a way to cache the margins and avoid the loop altogether.

贡献者指南