The beta 2 has been available at openrico.org for about 3 weeks now. Here is a quick description of how the scrolling is handled.
The scrolling for LiveGrid in Rico beta 2 has a new GridViewPort object that helps provide more of a MVC perspective and handles the asynchronous interaction a bit cleaner.
The Grid View Ports responsibilities are as follows:
- Takes care of displaying content onto the table. If the GridBuffer does not have all the content, the GridViewPort will fill the missing lines with blanks.
- Knows where the table is supposed to be at a pixel level granularity.
- Contains 1 more row than what is displayed. This allows a pixel level of adjustment to represent the browsers specific scroll behaviors. This is where the smoother scrolling comes from.
The GridBuffer now contains the rolling buffer of content around the GridViewPort. The results from a request are appended on to the front or back depending on the direction of the scroll. Also drops off content of the tail end. During thumb scroll, the GridBuffer might be reset completely. The size is of the buffer is now contains more rows than the request. It is a factor of 2 larger by default in beta 2.
There is a description of how this works at Virtual Workspace in Ajax patterns.