This is a migrated thread and some comments may be shown as answers.

Performance of Scheduler with High Volume of Data?

1 Answer 81 Views
Scheduler
This is a migrated thread and some comments may be shown as answers.
copatten
Top achievements
Rank 2
copatten asked on 16 Aug 2016, 05:01 PM

The scheduler performs well with the small number of events we have been rendering using the component. However the volume of events will increase for our use case considerably over time.

We are currently using an OData feed to retrieve the events. Is there any guidance on how best it would be to render events when dealing with a high volume of data?

Should we be loading data per month per user, and then when the user moves to the next month it requests further data? As part of this has any performance testing being carried out on the scheduler to understand what volume of data the scheduler works best with, where performance may start to degrade?

1 Answer, 1 is accepted

Sort by
0
Vladimir Iliev
Telerik team
answered on 18 Aug 2016, 08:05 AM
Hi Conor,

The best way to approach such scenarios is to request only the data for the visible days from the server (implement server filtering). Such example of using the dataSource "transport.parameterMap" function to add the filtering parameters to the server request is available in our code library:
parameterMap: function(options, operation) {
 
    if (operation === "read") {
        var scheduler = $("#scheduler").data("kendoScheduler");
 
        var result = {
            start: scheduler.view().startDate(),
            end: scheduler.view().endDate()
        }
 
        return kendo.stringify(result);
    }
 
    return kendo.stringify(options);
}

Updated version of the function that get the visible date range from the Scheduler prior reading the data is available below:

function getAdditionalData() {
    var scheduler = $("#scheduler").data("kendoScheduler");
 
    var timezone = scheduler.options.timezone;
    var startDate = kendo.timezone.convert(scheduler.view().startDate(), timezone, "Etc/UTC");
    var endDate = kendo.timezone.convert(scheduler.view().endDate(), timezone, "Etc/UTC");
 
    //optionally add startTime / endTime of the view
    var startTime = kendo.date.getMilliseconds(scheduler.view().startTime());
    var endTime = kendo.date.getMilliseconds(scheduler.view().endTime());
    endTime = endTime == 0 ? kendo.date.MS_PER_DAY : endTime;
 
    var result = {
        Start: new Date(startDate.getTime() - (startDate.getTimezoneOffset() * kendo.date.MS_PER_MINUTE) + startTime),
        End: new Date(endDate.getTime() - (endDate.getTimezoneOffset() * kendo.date.MS_PER_MINUTE) + endTime)
    }
 
    return result;
}


Regards,
Vladimir Iliev
Telerik by Progress
 
Get started with Kendo UI in days. Online training courses help you quickly implement components into your apps.
 
Tags
Scheduler
Asked by
copatten
Top achievements
Rank 2
Answers by
Vladimir Iliev
Telerik team
Share this question
or