Hi, after using tr:table since a long time for rendering
paged datasets,
I'm lost at understanding how the collection model works.
I use my own collection model, and I recently discovered
that for each
page methods setRowIndex/isRowAvailable are called to check
for row
existence of future pages. Nearly 30 calls are performed
this way to
check rows (_MAX_VISIBLE_OPTIONS row blocks).
While picking up rows from a database, this behavior turned
out to be a
true disaster in terms of performance.
My strategy was to load pages of records around each
setRowIndex: e.g.
assuming rowsPerPage = 10, I cache 10 rows around the
requested rowIndex.
By after the above requests, is appears that the entire
record set is
loaded upon SelectRangeChoiceBarRenderer needs just to setup
paging
widgets !
The issue here is that the collection implementation cannot
discriminate
whether setRowIndex is called to fill in the choice bar or
to render row
contents, otherwise in the former case I might load single
rows, not pages.
Any help is appreciated.
-- Renzo
|