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 {