I observed that grid repaints the rows even with single row scroll. Is this by design?
The only benefit of pre-rendering (20 rows above and 20 rows below the display window, i.e. 20 + 20 + 20 = 60 for window size of 20) is that they do not appear blank while repainting the scrolled window. But this blank row is not noticeable if we render fewer rows (20 + 2 + 2 = 24). Just wondering why 20-up and 20-down is needed!!!
I was implementing AJAX based server side paging and rendering 20-up and 20-down was real pain. Since grid is repainting the rows anyway, reducing it to 2-up and 2-down was giving better result.
When showing record 40-60, we fetch data from 18-82 and paint from 38-62. This is performing extremely well. Giving this extra buffer of 20 for data loading is making more sense.
Alex, I think 2 rows above display window and 2 rows below display window will also perform equally well? Isn't it?
Tuesday, August 29, 2006
I was thinking that ideally one should pre-fetch data for 2-3 pages ahead and pre-render rows for 1 page ahead (in case the user presses PageDown key and not just down arrow). This is where 20 rows up and down came from. I guess these parameters should be exposed via public properties because the 'best' behavior usually depends upon lots of other factors.