Premium support for our pure JavaScript UI components


Post by yuriv »

Hi. Default Bryntum Gantt data loading process doesn't look seamless with our product and I'm looking for ways to improve it.

The first thing is view. We can't go with default loader (see the pic). Is there a conventional way to customize it? For example, put there some custom spinner?

The second and actually much more important thing is data loading time. Currently after Gantt gets data, it digests for some seconds. For my 1,6K items dataset it's usually something about 3-4 seconds. This is too much. I'm thinking of a way to get to the first render faster and then continue loading in background.

Currently I'm testing such a solution: first to load truncated data tree and right after it's loaded (on taskStore change event) recursively use appendChild to make tree complete. This reduces time to render of big dataset notably (in my case for 3+ seconds), but leads to small UI hiccups right after while we are appending items.

For me this solution looks better than default, but still has downsides. Can you suggest my any examples/ideas/anything of how to make it better?

gantt_loader.png
gantt_loader.png (8.67 KiB) Viewed 554 times

Post by arcady »

That spinner icon can be adjusted with CSS ..just search for b-icon-spinner class (in gantt.classic.css file for example) to see how the icon is defined.
So something like this will replace the standard spinner icon with asterix icon from Font Awesome.

.b-mask .b-icon-spinner:before {
    content: "\f069";
}

Regarding data loading speed..
Unfortunately initial data loading takes noticeable time on large datasets. The Engine needs to build all dependencies between its atoms.
It could postpone that initial calculation till the first user change comes (drag'n'drop or smth) but then still that change would take the same long time.

Adding data part by part might cause dependent task/project borders recalculations while doing that.
So such workaround won't 100% work for every customer but If that option is good enough for your then stick to that approach. :)
We don't have better solution I'm afraid. Anyway the Gantt should finish its initial calculation before user changes data.

FYI we are working on the next generation of the Engine that should improve that but it's not done yet.


Post Reply