Let me provide some in-depth information about the observed behavior.
Virtual scrolling makes two types of requests - "prefetches" and "fetches".
take care of preloading data while the user scrolls slowly (e.g. while reading). These are background requests, which cache data, so that it is available when needed. This mechanism ensures smooth user experience and thanks to it, the user may even never see the animated loading indicator.
take care of loading data when the user scrolls fast to a place where there is no cached loaded data.
Now, it is theoretically possible that a "prefetch" and a "fetch" request take place shortly after each other and create the impression of a duplicate request. This depends on the following:
- the scrolling speed
- the Grid height
- the page size
- the server response speed
All the requests are asynchronous, and the Grid dataSource is not aware whether it has already sent a "prefetch" request for certain data. As a result, if the user reaches a place with missing data, the dataSource will check if this data is already cached or not and if not, unconditionally send a "fetch" request for it.
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI