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 navigation entries #349

Open
sarahschuetz opened this issue Apr 24, 2023 · 2 comments
Open

Performance with many navigation entries #349

sarahschuetz opened this issue Apr 24, 2023 · 2 comments
Labels

Comments

@sarahschuetz
Copy link

Question

Hi! 😊

We are planning to use the navigation plugin on a new project which has quite a heavy navigation. Are there any known troubles we could run into if we have thousands or more navigation nodes?

Thanks, Sarah

Additional context

For example, we are thinking about PHP max_input_vars or PHP memory_limit, but we were wondering if there is any experience in general with very large navigations regarding performance or any known limitations.

@engram-design
Copy link
Member

If you're talking rendering a thousand nodes, then yes there are some things to consider. Navigation nodes aren't inherently expensive to render, but the same would apply as if you were rendering thousands of entries on a single render.

No PHP memory limits to speak of, but I would recommend to employ either template caching or static caching to alleviate rendering troubles.

For an IA of that size, I would possibly recommend only loading paths as you need. I'm not sure what your use-case or IA structure looks like, but I would hardly think you need to view thousands of nodes every time a user wants to navigate somewhere. Even something like a mega menu, you could lazy-load items when rendering.

But that's all an implementation detail. Navigation itself doesn't impose a limit on the nodes you can use.

@sarahschuetz
Copy link
Author

Is there lazy loading or pagination in the Craft Admin panel? I am a little bit worried about backend performance.

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

No branches or pull requests

2 participants