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

Speed up initial page loading #7982

Open
8 tasks
philippotto opened this issue Aug 8, 2024 · 1 comment
Open
8 tasks

Speed up initial page loading #7982

philippotto opened this issue Aug 8, 2024 · 1 comment

Comments

@philippotto
Copy link
Member

philippotto commented Aug 8, 2024

When loading a dataset (warm cache), the duration until the first data bucket is downloaded is ~2.5 seconds. I think, there is a chance to optimize quite a few things:

  • make loading of olvy script completely async ("defer" is used but this still influences the DOMContentLoaded event)
  • load web worker modules lazily (e.g., they are not even needed in the dashboard)
  • reduce size of web workers (by reducing imports)
  • avoid impact of standard requests (organizationIsEmpty, features, getActiveUser, ToS)
    • the requests themselves could be faster (e.g., organizationIsEmpty waits 40 ms for the server so that a simple false is returned)
    • these requests could also be baked into the served HTML to avoid roundtrips (not sure about the downsides though)
  • the initial getMaximumZoomForAllResolutionsFromStore JS function takes 600ms. hopefully this can be sped up
  • GETing the user organizations can be made lazily (either for ToS or avatar in navbar)

Not all optimizations might reduce the perceived page loading speed because requests and JS code can happen in parallel. still, less work => better.

image

@fm3
Copy link
Member

fm3 commented Dec 18, 2024

I added some small request speedups in #8290 but the big fish in the network tab remains olvy (compare #8207).

Maybe some requests could also be parallelized (as they spend most of their frontend time waiting?) e.g. getActiveUser, buildInfo, toSAcceptance? Maybe some already are, I did not look into this further.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants