I have a web application that retrieves and displays records from a database. A user's query could possibly match thousands of records; in such cases, it makes sense for the user to refine his search.
In the case that the query matches hundreds of records, it probably makes sense for the user to browse the records. The thing that bothers me is that the web application displays "pages" of records. In the context of a web application, I believe that paging is a horrible, horrible, way to display this kind of data.
Imagine the following scenario:
User runs a query: application indicates there are 20 pages and displays page 1.
User clicks on to page 2, then page 3.
User realizes that the record he was seeking is on page 2. User clicks on to page 2 again.
User thinks that he saw a similar record on page 1. User clicks back and forth between page 1 and page 2 repeatedly to compare the records.
With a web application, each page change necessitates loading an entirely new page. The end user probably thinks of it as just loading more data, but to the browser, this is just as much work as loading an entirely different page. Furthermore, when the user cycles back and forth between page 1 and page 2, the same data is being loaded from the server over and over again.
It's insane that with a modern computer equipped with billions of bytes of memory we have been conditioned to think of it as being normal for the computer to reload (over a slow connection with high latency) textual data that would take up megabytes at the very most.
I have an idea to use JavaScript to automagically load new records each time the user scrolls to the bottom of a page of records (There would be no paging links for the user to click on - the records would simply load as the user scrolls). This sounds nice; but one drawback that comes to mind is that it would be difficult to print the page without first having to click on to a "printer-friendly" view.
What other ideas are there for stuffing a database application into a web document without using a clunky paging system?