Responsive plugin performance tweak
Responsive plugin performance tweak
I've noticed what I think is a very minor tweak to the Responsive plugin, that has a nice performance boost.
The column-sizing event ends up being bound during the preInit event. For my table configuration, that ends up triggering the column-sizing event 3 times during the initialization process.
I've added a console.time()/timeEnd() to dump out those execution times and I see this in my console:
Responsive-column-sizing: 49.08ms
Responsive-column-sizing: 38.06ms
Responsive-column-sizing: 13.5ms
If I move the code to bind in the dt.on( 'init.dtr' ) event instead (so it waits until after initializing to bind the resizing behavior), it ends up saving over 100ms on initialization time. The init.dtr event already calls that._resizeAuto() and that._resize().
It would appear there's no reason that the column-sizing.dtr event would need to be fired until after the plugin has fully initialized.
I don't think this breaks anything (but I could be missing something), but it can end up saving a lot of CPU cycles—especially if there are a number of instances of DataTables on the page.
Replies
Excellent suggestion - thanks for this! I'll get that added in and post back here when done.
Allan
I suspect there are several other events that could be delayed on being wired up until the
initevent (column-visibility,draw.dtr,column-reorder.dtr) because they might lead to excessive calls during the initialization process.