Treetable: optimize the re-display of rows after parsing a new one

Demo at http://webix.com/snippet/23117f39. Please wait a few seconds for the webix messages to disappear, then click on the +/- for Expand me!

I would expect that the icon function would be called only for the “Expand me!” node and its child. Instead, it’s called three times for each node, and once for the newly parsed child.

I know that in some cases the columns adjust after loading new data to fit its width, but in this case the columns are fixed (as you can see for the second column). Can the rendering of icons be optimized?

When using dynamical data loading you will 2 rendering calls anyway, after item opening it must be repainted with new icon and after data loading it need to be repainted with new items.

Third call of .icon occurs because of adjust options. adjust: true }, This time datatable doesn’t really paints anything but call is necessary to detect the width of a content in the cell.

While we have some plans of further rendering optimization, currently components already render self quite fast, so it is not a high priority for now.

http://webix.com/blog/datatable-1000-columns-and-more/