Skip to content

Reduce svg icon requests during rendering

What does this MR do?

Reduce svg icon requests during rendering.

To avoid duplicate requests this adds a memoized promise that resolves to a DOM that contains GitLab icons in svg format.

Background

When displaying charts, the sgv path is often used to display elements in the chart, currently each of these displays triggers an ajax call to fetch the paths and discards the rest of the file.

This change keeps the document in memory and refers to it when other/more icons are shown.

Screenshots

This reduces the requests for icons to one. That's ~114KB per request (requests that are not cached!).

before after
Screen_Shot_2020-03-11_at_4.51.24_PM Screen_Shot_2020-03-11_at_4.50.05_PM

Chrome's profiler shows an additional 73.728 KB to cache the svgs.

Screen_Shot_2020-03-11_at_4.51.54_PM

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team

Closes #31734 (closed)

Edited by 🤖 GitLab Bot 🤖

Merge request reports