I have a few annotations for the buffered Grid which are related to usability:
1) start loading new rows only on release the scroller. For now you can force a huge amount of requests just by dragging the scroller
2) limit the amount of new loaded rows (maybe possible already?)
3) don't load again when i scroll up - it's buffered, so this should be already loaded
There are two separate examples we ship in the SDK, examples/grid/infinite-grid.html and examples/grid/buffer-grid.html. Both of them use a BufferStore which has a configurable pageSize and a PagingScroller.
The Buffer grid example loads all of its data up front in a single request/load. The PagingScroller then intelligently loads this data into the view. There is no threshold/delay because the data is already there and the components know that the range requested has already been satisfied.
Infinite grid dynamically requests content from the server-side after the user has stopped moving the server for 100ms. (This should be configurable within the PagingToolbar)
1) It's buffered via the PagingScroller
2) Based on the pageSize in the BufferStore
3) This already happens unless the data has been purged. BufferStore supports a configuration purgePageCount which represents the number of pages to keep in the cache before purging the last recently used records. The default is 5 pages. A value of 0 indicates to never purge the prefetched data.
Sencha Architect Development Team
for the buffer-grid all is fine, this behave very smooth and fast.
My comments popped up while testing the infinite-scroll example with external data (forum view).
If i open network tab and start dragging, even very fast up and down, i see all the requests. So 100ms may be too short for these "expensive" calls. It also starts showing loading mask direct after start scrolling, so you don't have the feeling of control (you don't see what you are requesting).
If all is configurable it might be better for control, and cache can be used more effective. i also don't get the feeling that already fetched data is cached as i see loading almost, this may also be a configuration issue, i will play with it.
Thanks for your explanations!
Release Manager of TYPO3 4.5
Is there any sort of contract back and forth betwen the UI and the Store when trying multi-Selection in a buffered grid?
Are there any plans in the framework to assist with large remotely filtered selected grids?<br>
How acurate is the 'selected array' isn't it missing all the middle uncached rows?
How is the remote server made aware of this, if at all to reply with selection value?
Are should rows in the middle (say 2million) listed as selected when rendered (server or client correct)?
How do we iterate through the list of uncached items to 'utilize' the large selection set?