I'm creating an application where search results are being shown in a table and I want to implement infinite scrolling with fixed header and footer of the table.

But I'm curious to know if sorting and filtering could be possible on a huge data set given that only a limited amount of data would be presented client side at a time and rest of the data will come once scrolling gets started.

Or is there any other way to represent a huge data table except by pagination or a [load more] button on a scrolling table?

4 Answers 4


Or is there any other way to represent a huge data table except by pagination or a [load more] button on a scrolling table?

A third approach might be to provide a way to further filter that result set, especially if the search is parametric. UIE has a good intro on faceted search:

Faceted search lets users refine or navigate a collection of information by using a number of discrete attributes – the so-called facets. A facet represents a specific perspective on content that is typically clearly bounded and mutually exclusive

If you can, dynamically analyse the result set to determine what are relevant facets or facet values (i.e. exclude any facet values wherein selection would result in zero results). Then, the user can drill down into the initial result set and triangulate a smaller, more relevant, result set.

For example, if I search for 'Hem' on LinkedIN I get 27,279 results. Far more than I could possibly browse (and LI actually limits pagination at 500 results). However, as you can see LI also offers to let me refine my search by presenting a number of search facets. I could, for example, reduce that 27,279 result set to just 2,543 persons by specifying "India" as the location. I could further refine by specifying a specific Industry or Company.

'Hem' search result filters

  • 2
    The OP wrote "huge data set", so this is the only approach, I feel. Noone wants to page, or scroll, pages and pages. What is sorting used for - concentrating the relevant matches in the first page, I'd argue. So don't think about how to layout infinitely scrollable lists, concentrate on reducing the matches by providing text search, meaningful facets (this is not simple), and quick (= easy) sorting. Dec 16, 2013 at 14:13

Some problems in the current design are:

  1. Breaking mental model, slips. Sorting/filtering only visible data in an infinite table could break user's mental model. The mental model assumes finite data set and some operation over this set, including sorting and filtering.

    Pagination or load more support user's mental model, as it clear show the data is no limited by single screen. While infinite table hides the amount of data, which could lead to erroneous interpretation and slips.

  2. Increasing cognitive load. Table data usually require reading, not just jumping over rows. So a lot of data without visual breaks increase cognitive load which leads to quick fatique.

  3. Bad readability. A lot of similar repeating data break readability and lead to loosing focus.

  4. Undefined data behavior. What is the behavior of the sorted table after loading more data? Re-sorting will mix old and new data, while just adding probably breaks ordering.


To solve possible issues you could use informative page breaker between data chunks. The overal interaction remains the same: infinite scrolling without any user efforts (load more, pagination).
enter image description here

  • Thanks Alexey, do you suggest any solutions for problem? I could not agree more with all the points above.I think bad readability can be solved with zebra lines and other visual appeal.
    – UXbychoice
    Dec 16, 2013 at 6:50
  • @Hem please, watch the Update section of the answer. Dec 16, 2013 at 9:40

I believe both these solutions could be implemented to give the user total control over the data results.

  • Do you have any reference to support your satement? Dec 16, 2013 at 12:05
  • I think eBay comes to mind - global search at the top, drill down on the left. Dec 16, 2013 at 13:05
  • although they have implemented a paging model. Dec 16, 2013 at 13:10

Treat when the user sorts a field as a table reset.

So lets say the user is scrolling down the table and records are loading. The user wants to sort by "Date". That should cause the table to reset and show the first X amount of records but sorted by date. Now when the user scrolls, it will retrieve data sorted by "Date". This works better if you freeze the field columns at the top, so that they are always visible while the user scrolls.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.