| ▲ | xigoi 6 hours ago |
| Infinite scroll makes the problem much easier, even if it’s still a problem. The only action you need to support is loading more results, which you can do by loading all results and filtering out those already shown. With pagination, the user may say “give me page 3” and you have no idea what was on pages 1 and 2, if they were even loaded. |
|
| ▲ | hdgvhicv 4 hours ago | parent | next [-] |
| If page 1 and 2 were 10 each you load results 21-30 Same as if you are scrolling and have reached result 20
And want to load more. |
| |
| ▲ | falcor84 4 hours ago | parent [-] | | But the underlying table changed since. I'm not very familiar with these myself, but it seams to me that the best solution is to keep a session cursor for the user, and these are a lot simpler when you only ever move it forward. | | |
| ▲ | Dylan16807 3 hours ago | parent | next [-] | | It's slightly different but I don't see why there should be a notable difference in difficulty. You need to somehow represent what you saw so far and act based on that. | |
| ▲ | Terr_ 2 hours ago | parent | prev [-] | | IMO "pages of search results" is one of the problems where the closer you look, the more potential problems and inconsistencies you see until you realize it's a leaky abstraction, and sometimes it gets too leaky. We want visitors to imagine that we just plopped a binder of sorted results down in front of them for their page-by-page perusal, but the suggests permanence and invariants we don't want to provide (because it's harder.) For example, the assurance that page 2 will always have the same items on it unless they "search again", and the last item on page 2 will not not duplicate itself on the top of page 3 as they page forward. By way of contrast, imagine a system where a result-set was not just a UI metaphor, but real domain concept. Do a search, and you get a Result which is a limited-size listing generated at time X for user Y and will be cached for Z. |
|
|
|
| ▲ | svachalek 2 hours ago | parent | prev | next [-] |
| You can implement pagination exactly the same way. It's a UX decision that has nothing to do with underlying queries, although it typically maps. The typical infinite scroll that I've seen implemented does not work the way you describe though, it's just pagination without controls. The reason it works is because it's pushing content you never asked for anyway and it just keeps pushing. Without any sense of pages you'll never know the difference. |
|
| ▲ | malfist 3 hours ago | parent | prev [-] |
| I mean sure, if you do it that way. But its easy to encode the page starting index and pagenate from there. Its even exactly the same algorithm as infinite scroll. |