From 501594a8f0c1d7d90b34838e438757cee08b6520 Mon Sep 17 00:00:00 2001 From: kunaljaykam Date: Tue, 28 Oct 2025 14:59:53 +0530 Subject: [PATCH] fix(rendering): optimize row height initialization in VirtualDomVertical --- .../rendering/renderers/VirtualDomVertical.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/js/core/rendering/renderers/VirtualDomVertical.js b/src/js/core/rendering/renderers/VirtualDomVertical.js index c4b775b2f..4a2f574ec 100644 --- a/src/js/core/rendering/renderers/VirtualDomVertical.js +++ b/src/js/core/rendering/renderers/VirtualDomVertical.js @@ -310,27 +310,29 @@ export default class VirtualDomVertical extends Renderer{ } element.appendChild(rowFragment); - - // NOTE: The next 3 loops are separate on purpose - // This is to batch up the dom writes and reads which drastically improves performance + + // NOTE: The next 4 loops are separate on purpose + // This is to batch up the dom writes and reads which drastically improves performance renderedRows.forEach((row) => { row.rendered(); + }); + const rowsNeedingHeightInit = []; + renderedRows.forEach((row) => { if(!row.heightInitialized) { row.calcHeight(true); + rowsNeedingHeightInit.push(row); } }); - renderedRows.forEach((row) => { - if(!row.heightInitialized) { - row.setCellHeight(); - } + rowsNeedingHeightInit.forEach((row) => { + row.setCellHeight(); }); renderedRows.forEach((row) => { rowHeight = row.getHeight(); - + if(totalRowsRendered < topPad){ topPadHeight += rowHeight; }else {