One of the more promising patterns in Web UI development is Continuous Scrolling. Popular sites such as Twitter and Facebook use it. With Continuous Scrolling, new data is automatically retrieved as the user has scrolled to the bottom of the page.
I recently discovered that this is already a (not so well-known) feature for the af:table component in ADF 11g! And it is so very easy to implement! Simply set RowCountThreshold="-1" on your iterator in your bindings. Done!
Coincidentally it also helps performance, because now the table doesn’t need to know the exact number of rows that are available, it will discover new rows when the user scrolls to the bottom of the page. This means that getEstimatedRowCount() will not be called anymore. This might save you another query to the database. You should try it sometime.
(this post originally appeared on the AMIS Technology blog)