Skip to content

Implement deferred Select2 initialization for tag modal#731

Merged
javuto merged 1 commit intojmpsec:mainfrom
zhuoyuan-liu:fix-ui-db
Oct 14, 2025
Merged

Implement deferred Select2 initialization for tag modal#731
javuto merged 1 commit intojmpsec:mainfrom
zhuoyuan-liu:fix-ui-db

Conversation

@zhuoyuan-liu
Copy link
Contributor

#635

This PR defers the loading of the select2 function, which significantly reduces UI loading time when handling a large number of nodes.

Initially, I assumed the slowness was caused by loading a large dataset from the database all at once. However, after adding more detailed logs, I realized that this wasn’t the main bottleneck — most of the delay came from loading the select2 function.

There are two root causes behind the issue:

  1. All admin tags are loaded into the browser, even when they aren’t used.
  2. The system automatically generates too many unnecessary tags.

This PR addresses the first issue by deferring the loading process. For now, it's okay to open the nodes list with 10k+ nodes.

For the second issue, we should stop generating meaningless tags. Currently, a tag is created for each node’s name and UUID, which are already unique identifiers. Tags should instead be used for grouping nodes — for example, by environment (dev, prod), region (westeu, westus), or team/office. Once we remove these unnecessary tags, the UI performance should return to normal.

@javuto javuto requested a review from Copilot October 14, 2025 08:19
@javuto javuto added the osctrl-admin osctrl-admin related changes label Oct 14, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements deferred initialization of the Select2 library for the tag modal to improve UI loading performance when dealing with large numbers of nodes. The main issue was that Select2 was being initialized immediately on page load, causing significant delays.

  • Defers Select2 initialization until the tag modal is first opened
  • Adds fallback mechanism to dynamically load Select2 from CDN if not available
  • Prevents duplicate initialization with a ready flag

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@javuto javuto added the ⚡️ performance Performance related issues label Oct 14, 2025
@javuto javuto self-requested a review October 14, 2025 18:57
@javuto javuto merged commit 63b73d0 into jmpsec:main Oct 14, 2025
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

osctrl-admin osctrl-admin related changes ⚡️ performance Performance related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants