-
Notifications
You must be signed in to change notification settings - Fork 11
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
Improve Profile Viewer performance & user experience #114
Conversation
During the page loading process in Profile Viewer, a Skeleton placeholder is added as a visual indicator. The added placeholder is modeled after the card structure of the imported controls. Additional documentation has been included in Profile as well.
These create a new function every time components are re-rendered. To optimize these methods, the 'function' keyword is used instead.
Some of the Control modification attributes didn't need to be included when rendering controls and have been removed. Some other minor areas of control modifications have been improved.
To resolve a browser error, a key has been given to the skeleton cards. The ControlProse test suite was failing due to the change in how modifications are handled, and now has been updated.
I wanted to note the live sandbox environment seemed to already run the FedRAMP moderate profile in about 2 or less seconds (as desired in the Acceptance Criteria). There seems to be a performance drop with it locally, especially when using the reload button after a few times. I was able to shave a couple seconds off when running it locally - which I think will still show a noticeable change on AWS. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kkennedy26 I was using the FedRAMP profile as the default profile when testing. I just realized the NIST profile doesn't have |
This looks great and I am really excited about the potential improvements here! There are a lot of changes. Can you talk about how specifically this was optimized? Are there performance benefits to |
Of course - I was a bit vague about optimization. The arrow functions ( |
Looks good. Can definitely see the improvements in load time with Profile Viewer since the recent commit |
To further improve performance, I had the idea that more data could be filtered out of modifications (it appears to be what's taking the longest time to load and render), such as getting rid of the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just realized I didn't approve this in my previous comment but meant to haha.. good work
Due to lengthy rendering, the Profile Viewer takes a long period of time to show elements on the page. In order to improve the user experience, a skeleton framework has been added to display on the page while rendering the resolved controls. To improve performance, a few areas of
OSCALProfile
,OSCALControl
, & underlying components have been optimized. Most notably, themodifications
data sent between components have been slimmed down.