Files
Jan Sandbrink 177fe78e60 Load projects in selector only partially
This is intended to improve performance for large installations of OpenProject,
where a single user can see many projects. Instead of loading all visible projects
eagerly, we only load about 300 projects, plus a few more to make sure that the user
experience is not affected too badly (e.g. ancestors of all projects shown and the
current project the user has opened). To still allow finding any project, the filtering
according to the typed search term now also happens on the backend side, so typing will
cause additional backend requests.

For small installations (< 300 projects) the difference in behaviour should be small:
We only perform a single API request to load the project list. The main difference is, that
typing causes further API requests, but they should be quick anyways. An increase in number of
API requests is plausible though (due to requests after typing).

Large installations should see a significant drop in perceived loading times, because it's not necesarry
to wait for pagination across all projects to finish, instead a constant number of requests - with a lower
response time each - is sufficient. A decrease in number of requests is plausible here, because requests after
typing might well be below a single full pagination. Also request concurrency should decrease.
2025-11-21 15:42:07 +01:00
..