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

Performance with many tags #8540

Closed
kirrg001 opened this issue Jun 7, 2017 · 1 comment · Fixed by TryGhost/Admin#773
Closed

Performance with many tags #8540

kirrg001 opened this issue Jun 7, 2017 · 1 comment · Fixed by TryGhost/Admin#773
Assignees
Labels
affects:admin Anything relating to Ghost Admin help wanted [triage] Ideal issues for contributors to help with

Comments

@kirrg001
Copy link
Contributor

kirrg001 commented Jun 7, 2017

I noticed a lag when having too many tags.
See screencast below.

pereditor1

I had a round 100 tags or more?

Steps to reproduce:

  • import a big database with lot's of tags
  • open the tags filter, you will see a lag
  • same for: when you open the tags in the menu, loads pretty slow

The response from the server was always very low ~40ms.

Ghost: master

@kirrg001 kirrg001 added affects:admin Anything relating to Ghost Admin optimisation labels Jun 7, 2017
@kevinansfield
Copy link
Contributor

The dropdown I think will need to be adapted to use vertical-collection, I believe there's already an example here.

For the tags screen we probably also want to implement vertical-collection, that may need us to adopt the improved pagination library that we're using on the content screen. It may be useful to review this when we look at the tags screen re-design.

@kirrg001 kirrg001 added the help wanted [triage] Ideal issues for contributors to help with label Jun 19, 2017
kevinansfield added a commit to kevinansfield/Ghost-Admin that referenced this issue Jul 7, 2017
closes TryGhost/Ghost#8540
- use `{{vertical-collection}}` in the tags dropdown filter list, opening the dropdown is now virtually instant as it's not attempting to immediately render components for every tag in the list
- remove pagination/infinite scroll from tags screen
- load all tags when accessing the tags screen
  - will pause to show spinner if no tags have previously been loaded
  - if tags exist in the ember data store, show the list immediately and load/update list in the background
- use `{{vertical-collection}}` to render enough tags to fill the scrollable area with a small buffer and use occlusion and element re-use to swap tags in whilst scrolling (suuuuper fast no matter number of tags loaded)
- scroll tags into view when they are selected (keyboard nav now makes a lot more sense)
- tested with 875 tags and 2x/5x CPU throttling with no major slowdowns 🎉
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects:admin Anything relating to Ghost Admin help wanted [triage] Ideal issues for contributors to help with
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants