Unplanned
Last Updated: 28 Dec 2021 15:37 by Nemo
Nemo
Created on: 12 Oct 2021 15:45
Category: Grid
Type: Feature Request
3
Column virtualization rendering - debouce delay

Hi, please expose the debounce delay as a property of TelerikGrid so we can set how soon virtualized columns are loaded after the user scrolls.

**Admin Edit**

This feature request requires research, and if such DebounceDelay parameter can work with good quality in all cases - it will be implemented. Additionally, we will revise the feature together with loading next set of columns if it will be applicable.

**Admin Edit**

11 comments
Nemo
Posted on: 28 Dec 2021 15:37

Hi Joana,

Thanks for the answers. The current debounce delay of 180ms is more than enough and exposing that might not be as useful, at the most we could set the debounce delay to 0ms, which would make the grid immediately trigger the re-rendering logic. Alternately what would be more useful is to expose the list of columns which are visible and let the user override columns which should be virtualized, instead of relying solely on scroll position. That would open up a lot of possibilties and potential for fine tuned optimizations based on the characteristcs of the columns/data. Will keep an eye on this feature request and hope it is implemented in an upcoming release soon! Thanks.

ADMIN
Joana
Posted on: 28 Dec 2021 01:45

Hi Srihari,

I will go straight to the questions.

1) Yes, we are listening the scroll event. Based on the scroll position and the cells visibility within the Grid content area we perform our virtualization logic. With 2.29 release our source code is shipped to our customers, so if it is interesting for you you could further look into the actual code.

2) We further evaluated the feature request for adding debounce delay for the scroll event. By default, we use 180ms debounce delay of the scroll. It needs additional research, but we might be able to expose a public configuration parameter for it. Currently, our code base rely on this delay and we need to thoroughly test what values of this delay would be reasonable. Thus, I am moving the status of this item to unplanned, but have in mind that we will release this feature only if the research is successful and we can deliver good quality with it. 

Regarding, the amount of visible columns I am adding it in the description of this request to be considered. However, I think that if we are able to expose the delay this configuration will be redundant.

Regards,
Joana
Progress Telerik

Learn about the important changes coming in UI for Blazor 3.0 in January 2022!
Nemo
Posted on: 27 Dec 2021 23:56
Hi, any update on this? Thanks.
Nemo
Posted on: 21 Dec 2021 16:51

Hi Marin, continuing on the example, when displaying 100 columns I want to clarify that all the data for the 100 columns are indeed available in the model. My questions are,

1) How is the grid able to figure out which columns are visible in the viewport? It must certainly be listening to horizontal scroll event right?

2) Can we explicitly tell the grid to render not only the visible columns, but also 'n' number of columns to the left and right of the viewport? This way we can have the <td> generated for those 'n' columns already and when the user scrolls the delay to load/generate the newly visible columns can be reduced.

Let me know your thoughts, thanks.

ADMIN
Marin Bratanov
Posted on: 14 Dec 2021 04:58

Hi,

Thank you for the clarifications.

I have done two things:

  • update the title of this page to reflect its actual purpose
  • marked it as "declined" because this is not how the feature is supposed to work

First and foremost, column virtualization is a UI rendering optimization technique, not a data loading optimization technique. It expects that you have all the fields in the model from the start (say, all the 100 fields in the provided scenario). There is no event when the user scrolls, and so no suitable event for additional data loading/processing.

The optimization this feature brings is related to how much and how fast Blazor can render many DOM elements and strives to optimize this by only rendering a small subset of the columns. In the provided example, let's assume the default page size of 10 - with 100 columns there would be 100 <td> elements by default, while with virtualized columns only 100 of those would render. This would speed up any operation such as paging, filtering, grouping and so on because the framework would have to do 10 times less work. The data for all 100 columns needs to be available, however, the grid will query the model when it has to render the cells.

I hope this explains the situation and why any delays are not a feature that can fit in the current model of the column virtualization feature.

Regards,
Marin Bratanov
Progress Telerik

Learn about the important changes coming in UI for Blazor 3.0 in January 2022!
Nemo
Posted on: 13 Dec 2021 18:08

Hi, this is not a duplicate request. I am asking for a way to specify how many virtual columns should be pre-loaded with data left/right of the current view port.

E.g. A grid has a total of 100 columns and the current viewport is showing 10 columns, say columns 51-60. Now when the user scrolls right, values of columns 61-70 are rendered. Here, the user has to wait for the data to load and it can vary according to the number of rows.

What I am proposing is to add a property which specifies the number of columns to pre load, so that user doesn't have to wait for data to load while scrolling. In this example, if I specify pre load to 10, when the user scrolls right, columns 61-70 plus 71-80 is loaded. So everytime the user scrolls, some columns which are not in view yet are already loaded and gives a better scrolling experience.

Please make this into a separate feature request. Thanks.

Ted
Posted on: 09 Nov 2021 04:56
And, obviously we don't want to have to update the source code ourselves to add features into a commercial product! Please add this feature that is present in all of your competitor's solutions.
Ted
Posted on: 09 Nov 2021 04:54
This really needs to be fixed. None of the proposed solutions are acceptable coming from a professional toolkit. As just one example, the OnRead event solution adds a delay for every read operation, whether or not it was initiated by the user typing in the filer box. Please put a fix in for this, just like the DebounceDelay of the SearchBox: https://docs.telerik.com/blazor-ui/components/grid/filter/searchbox
Nemo
Posted on: 20 Oct 2021 13:14
Ok, thanks Hristian.
ADMIN
Hristian Stefanov
Posted on: 20 Oct 2021 12:25

Hi Srihari,

As a follow-up to my previous answer, I would like to share that we already have a public item for the described feature on our Public Feedback Portal:

Add Debounce property for grid filtering

That said, I will hereby mark this thread as "Duplicated" to the older one linked above. I also added a vote to it on your behalf to increase its popularity as we are prioritizing the feature requests implementation based on the community interest and demand. You can subscribe to the older item to receive email notifications when its status changes.

Thank you for your understanding.

Regards,
Hristian Stefanov
Progress Telerik

Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.

ADMIN
Hristian Stefanov
Posted on: 19 Oct 2021 14:01

Hi Srihari,

Thank you for raising a question about such a feature.

I'm marking this public item as "Unplanned". This means that this is a valid feature request with no scheduled date for implementation yet. Since you are the creator of this request, you are automatically subscribed to receive email notifications on status updates.

A possible alternate is coming with the following feature request in our 2.29.0 release, mid-November:

Make source code available to paid license holders

With the source code available, you will be able to implement the desired result on your own.

If you have any other questions, I would be glad to help.

Regards,
Hristian Stefanov
Progress Telerik

Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.