Hello,
after upgrading my Gantt chart to release 2020 R3 SP1 I noticed a significant performance drop in the chart to the point of it not being snappy enough to give to end users. I have made a simple repro at https://dojo.telerik.com/OjOCEjIm/4 (I hope this links to my custom edit, if not the code is down below to copy paste into a Dojo window). It is a simple Gantt chart where I add 50 summary tasks and 50 child tasks for those.
When running the chart in the dojo under 2020 R2 SP1 the chart loads fast and clicking open a summary task has an almost imperceptible delay. But when switching to 2020 R3 or R3 SP1 releases from the dropdown in the top left, the same chart takes multiple seconds to load and opening of a summary task takes about 1-2 seconds.
I'm in a situation where the data to be displayed in the Gantt sometimes is in the order of 35-50*35-50 tasks. Are there any performance hints I might employ to make the R3 release usable as I would like to use for example the columnMenu option that I believe is only available in R3? Also any and all performance hints are welcome.
If the link up doesn't link to the custom Dojo, here is the code to copypaste:
<!DOCTYPE html>
<
html
>
<
head
>
<
meta
charset
=
"utf-8"
/>
<
title
>Kendo UI Snippet</
title
>
<
script
src
=
"https://code.jquery.com/jquery-1.12.3.min.js"
></
script
>
<
script
src
=
"https://kendo.cdn.telerik.com/2020.3.1021/js/kendo.all.min.js"
></
script
>
<
link
rel
=
"stylesheet"
href
=
"https://kendo.cdn.telerik.com/2020.3.1021/styles/kendo.common.min.css"
>
<
link
rel
=
"stylesheet"
href
=
"https://kendo.cdn.telerik.com/2020.3.1021/styles/kendo.rtl.min.css"
>
<
link
rel
=
"stylesheet"
href
=
"https://kendo.cdn.telerik.com/2020.3.1021/styles/kendo.default.min.css"
>
<
link
rel
=
"stylesheet"
href
=
"https://kendo.cdn.telerik.com/2020.3.1021/styles/kendo.mobile.all.min.css"
>
<
script
src
=
"https://kendo.cdn.telerik.com/2020.3.1021/js/angular.min.js"
></
script
>
<
script
src
=
"https://kendo.cdn.telerik.com/2020.3.1021/js/jszip.min.js"
></
script
>
</
head
>
<
body
>
<
div
id
=
"gantt"
></
div
>
<
script
type
=
"text/javascript"
>
var gantt;
$(function StartingPoint() {
var ganttDatasource;
this.ganttDatasource = new kendo.data.GanttDataSource();
gantt = new kendo.ui.Gantt($("#gantt"),
$.extend({
columns: [
{ field: "id", title: "ID", sortable: true, editable: false, width: 70 },
{ field: "title", title: "Title", sortable: true, editable: true, width: 100 },
{ field: "start", title: "Start", sortable: true, editable: true, format: "{0:MM/dd/yyyy HH:mm}", width: 100 },
{ field: "end", title: "End", sortable: true, editable: true, format: "{0:MM/dd/yyyy HH:mm}", width: 100 }
],
views: [
"year"
],
listWidth: 300,
height:800,
dataSource: this.ganttDatasource
}, {}));
let tasks=[];
// random tasks
for (p=1;p<
50
;p++) {
tasks.push({id:"p"+p,parentId:null, title:"task", start:new Date(2020, p+1, 1),end:new Date(2020, p+2, 1), summary:true});
for (var
t
=
0
;t<50;t++) {
tasks.push({id:"p"+p+"t"+t,parentId:"p"+p, title:"task", start:new Date(2020, t+1, 1),end:new Date(2020, t+2, 1)});
}
}
this.ganttDatasource.data(tasks);
gantt.refresh();
});
</script>
</
body
>
</
html
>