Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to infinite scrolling #1509

Open
blizzz opened this issue Dec 16, 2024 · 3 comments
Open

Switch to infinite scrolling #1509

blizzz opened this issue Dec 16, 2024 · 3 comments
Labels
1. to develop Accepted and waiting to be taken care of enhancement New feature or request performance Performance issues and optimisations

Comments

@blizzz
Copy link
Member

blizzz commented Dec 16, 2024

Contributes to #941

Subsequent to #1508

With the infinite scrolling approach we like to dissolve the traditional pagination display and controls.

We want to show up to 300 rows at the same time, with initially 100. When scrolling down, already cached rows will be blended in, while the next results are being loaded in the background. If the more than 300 elements would be visible, the top elements in the DOM will be removed again.

Therefore we have to have similar – reversed – logic for scrolling up.

We should limit the number of rows that are being kept in runtime cache to avoid consuming too much ram in the browser. Unfortunately it is not known how much RAM is available. A hard set of numbers of rows is not ideal, as rows can have very different payloads and differ in size. Thus a dynamic approach is preferable with setting a limit of 250MB (currently, a tab with 10k rows loaded consumes 1GB for me). Ideally testing with a mobile browser on an average phone should be taken into account.

On partially loaded tables, setting a filter or a sort order would need to fetch the rows from the server and re-initialize the state. A load animation - which we have when switching tables/views – should reflect this.

@blizzz blizzz added 1. to develop Accepted and waiting to be taken care of enhancement New feature or request performance Performance issues and optimisations labels Dec 16, 2024
@enjeck
Copy link
Contributor

enjeck commented Dec 20, 2024

Why is infinite scrolling better than pagination? Is it just a UX decision or is the performance better? Would caching pagination (if possible) be the same performance-wise?

@blizzz
Copy link
Member Author

blizzz commented Jan 6, 2025

Why is infinite scrolling better than pagination? Is it just a UX decision or is the performance better? Would caching pagination (if possible) be the same performance-wise?

Just UX, more modern. The underlying data keeping and fetching does not change much. We can also have pages preloaded with pagination controls. It was also the long term goal and idea of our pagination approach, the current one was a quick first solution.

@blizzz
Copy link
Member Author

blizzz commented Jan 6, 2025

… what I did not think of though where the Applications/Contexts. There the infinite scrolling approach does not make much sense, with several tables or views present. You might scroll to death to reach just the next table or view… With the layout it would be difficult to scroll by, maybe it would be beneficial to keep the paginated view for this part at least.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop Accepted and waiting to be taken care of enhancement New feature or request performance Performance issues and optimisations
Projects
None yet
Development

No branches or pull requests

2 participants