Hi List,

It's fairly easy to implement pagination with a <tr:table> component. Just 
set the "rows" and "first" attributes and you're done. But it turns out 
that the pagination is not implemented very smart. Let me explain my 
case...

I have a database with some very large tables (10000 to 100000 records per 
table). The database is (sadly enough) not too fast. So to make the user 
interface responsive to the users, it is very important that only the data 
that is displayed is fetched from the database. Therefore, I implemented a 
"lazy list", as suggested on http://www.ilikespam.com/blog/lazy_list. I 
expected to get much better performance, but this did not happen. I added 
some logging to the lazy list to see what's happening. It turns out that 
the table is prefetching a lot more rows that the ones that are displayed 
initially. 

I did set the "rows" attribute to 10, but it seems the table is fetching 
about 300 rows at a time. (This takes more than a minute due to my poor 
performing database...) This can actually be a nice feature, since the 
user can browse very fast through the next 300 records... once they are 
loaded. The problem is, however, that the table does not get rendered 
until the fetching of those 300 records is finished.

So my question is: is there a way to configure the fetching strategy of 
the table component? Is it possible to give rendering a higher priority 
than prefetching, for instance? Or can I configure how many rows are 
prefetched?

Thanks in advance for your help!
Best regards,
Bart Kummel

Reply via email to