У нас есть элемент управления Kendo Grid, который отображает данные, полученные с сервера базы данных. Пейджинга нет. Все данные извлекаются один раз и отображаются с полосой прокрутки (в зависимости от количества строк).
Однако есть некоторые пользовательские операции, включающие столбец числового текстового поля (номер типа ввода) и столбец управления датой (дата типа ввода). Пользователь может изменить значения в этих элементах управления, которые запускают функции обработчика событий onchange, написанные с помощью javascript. В этих функциях javascript нет обращений к серверу, и это чисто клиентский код.
Проблема, с которой мы сталкиваемся, заключается в небольшой блокировке пользовательского интерфейса, как только изменение запускается в любом из элементов управления вводом. При трассировке кода javascript с помощью операторов console.log было обнаружено, что на эти операции было затрачено значительное время: kendoGrid.dataSource.sort()
, $("#dataGrid").data("kendoGrid").dataSource.data(sortedDataObject)
и $('#dataGrid').data('kendoGrid').refresh()
.
Я ищу способ повысить производительность, что может включать в себя частичное обновление сетки (что-то похожее на виртуальную прокрутку с пейджингом сервера) с использованием данных, видимых в области отображения сетки, и частичное обновление сетки с участием только некоторых столбцов. Я не смог найти способ частично обновить сетку, потратив некоторое время на исследования.
Я не могу вставить какой-либо исходный код, так как я не совсем уверен, сколько кода и какой код действительно может представлять проблему. Вот почему я попытался представить проблему более словесно, надеясь, что смогу найти какие-то решения или подходы.