Skip to content

Conversation

@ollyd
Copy link
Collaborator

@ollyd ollyd commented Oct 23, 2025

Forms containing large select option lists (e.g. country dropdown) caused severe UI lag on every keystroke in other text field inputs. deepMergeSchemas was recursively merging hundreds of option objects per validation.

Changes:

  • Added content-hash caching for field options
  • Skip deep merge for options (replace arrays instead)

No more discernible lag, with a measurable ~10x improvement:

Before:
Screenshot 2025-10-23 at 10 23 58 am

After:
Screenshot 2025-10-23 at 10 19 37 am

Related internal MR.

@ollyd
Copy link
Collaborator Author

ollyd commented Oct 23, 2025

I think there's other general fixes that could/should be implemented to improve performance when we update fields, however this specific fix is a non-drastic way to fix the immediate problem.

@ollyd ollyd marked this pull request as ready for review October 23, 2025 04:19
sandrina-p
sandrina-p previously approved these changes Oct 28, 2025
@ollyd ollyd merged commit 272e053 into main Oct 30, 2025
5 checks passed
@ollyd ollyd deleted the rmt-1768-jsf-performance-ui-lags-when-a-field-contains-large-select branch October 30, 2025 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants