Skip to content
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 perceived performance by preloading the template parts defined in Theme JSON when in Site Editor #48924

Closed

Conversation

getdave
Copy link
Contributor

@getdave getdave commented Mar 8, 2023

What?

Improves the perceived loading performance of the Site Editor by (selectively) preloading template parts (see How for details).

Why?

Most of the perceived sluggish-ness of the Site Editor loading is due to having to wait for template parts to resolve from the network.

For example on TT3, when the editor loads requests are dispatched for

  • /wp/v2/template-parts/twentytwentythree//header?context=edit
  • /wp/v2/template-parts/twentytwentythree//footer?context=edit

The former is particularly jarring as the whole header area becomes a loading spinner until the network resolves. This is very noticeable on slower connections (take a minute to test it).

This is further compounded by the fact that most header template parts will contain a Navigation block which has it's own loading state which is dependent on loading entities over the network. As the Nav block will not be rendered in the editor until the template part resolves, this means we get a loading waterfall effect where we see

  • template part loading
  • template part resolves
  • navigation block starts loading
  • navigation block resolves

This is not a great experience.

How?

By preloading requests for the templates parts defined by the theme.json we can ensure these parts are available immediately in the @wordpress/api-fetch network cache upon editor load.

This means the editor never dispatches the network fetch request and instead [core data] immediately returns the entity data for the template part directly.

This results in almost no loading spinners in the header. When combined with #48683 this should have a major impact on improve the perceived performance.

### Criteria for Preloading a Template

When determining which template parts will be preloaded the following criteria apply:

  • must be defined in theme.json under the templateParts key.
  • must include a area property set to header - these are templates being specifically denoted as being designed for the "Header" Template Area of a site.
  • within the first 3 templates - we hard limit to 3 preloaded templates by default to avoid unwanted edge cases. This can be filtered using the gutenberg_template_part_preloading_limit filter.

⚠️ Potential Considerations

  • may slightly increase TTFB in the Site Editor (only) - looking at Gutenberg Performance tests (see CI for this PR) changes seem negligible (example)
  • may result in 404 requests on the server if the header or footer parts do not exist. concern no longer applies

Testing Instructions

  • Activate TT3
  • Throttle your connection a bit.
  • Open Site Editor
  • See no loading spinners for the site Header.
  • Compare with trunk where there are loading spinners which take a long time to resolve.

Testing Instructions for Keyboard

Screenshots or screencast

Before

Notice the loading spinner for the template part.

Screen.Capture.on.2023-03-08.at.12-48-13.mp4

After

Notice no spinner for the template part.

Screen.Capture.on.2023-03-08.at.12-47-13.mp4

@getdave getdave added [Type] Performance Related to performance efforts [Block] Template Part Affects the Template Parts Block labels Mar 8, 2023
@getdave getdave marked this pull request as ready for review March 8, 2023 12:49
@getdave getdave requested a review from spacedmonkey as a code owner March 8, 2023 12:49
@getdave
Copy link
Contributor Author

getdave commented Mar 8, 2023

Related #48683

@getdave getdave changed the title Preload the most commonly used template part slugs Improve perceived performance by preloading the most commonly used template part slugs in the Site Editor Mar 8, 2023
@getdave getdave requested review from swissspidy, Mamaduka and tyxla March 8, 2023 12:59
Copy link
Member

@tyxla tyxla left a comment

Choose a reason for hiding this comment

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

Thank you for the great work @getdave!

I've left some questions.

@getdave
Copy link
Contributor Author

getdave commented Mar 16, 2023

Thanks for the review @tyxla. I take your points and they were my main concerns when raising this PR (see description).

It comes down to the same as the other PR for Navigation menus. Does the benefit for the majority outweight any downside for the minority.

My guess is that this PR will end up being closed as it's too un-targetted to be palatable.

@tyxla
Copy link
Member

tyxla commented Mar 16, 2023

Thanks for the review @tyxla. I take your points and they were my main concerns when raising this PR (see description).

It comes down to the same as the other PR for Navigation menus. Does the benefit for the majority outweight any downside for the minority.

I fully agree with that, and from my perspective, I can't really tell, because my experience with template parts and themes isn't extensive enough. I just wanted to bring up what I know and would prefer to leave the final decision to someone who can better weigh the tradeoffs you outlined.

@getdave
Copy link
Contributor Author

getdave commented Mar 16, 2023

Thanks @tyxla. I appreciate you providing that perspective. It's important.

I'm going to try one more thing to see if we can improve this implementation.

@@ -19,17 +19,26 @@ function gutenberg_preload_template_parts( $preload_paths, $context ) {
return $preload_paths;
}

$theme_slug = wp_get_theme()->get_stylesheet();
// Get any template parts defined in theme.json.
$theme_json_template_parts = WP_Theme_JSON_Resolver::get_merged_data()->get_template_parts();
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@tyxla What do you think about this more selective approach? Here we only preload those template parts that are defined by the Theme in the Theme JSON.

Copy link
Contributor Author

@getdave getdave Mar 16, 2023

Choose a reason for hiding this comment

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

Example

https://github.com/WordPress/twentytwentythree/blob/11440a5b38bae6882fc2c00b703d4bb95420a0f5/theme.json#L712-L733

	"templateParts": [
		{
			"area": "header",
			"name": "header",
			"title": "Header"
		},
		{
			"area": "footer",
			"name": "footer",
			"title": "Footer"
		},
		{
			"area": "uncategorized",
			"name": "comments",
			"title": "Comments Template Part"
		},
		{
			"area": "uncategorized",
			"name": "post-meta",
			"title": "Post Meta"
		}
	]

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@scruffian I don't really understand the value of having a templateParts definition in Theme JSON but Themes are doing it. It could act as a optimising with the Theme "telling" the editor how to optimise itself.

Copy link
Member

Choose a reason for hiding this comment

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

This looks like a sensible approach 👍

I assume that WP_Theme_JSON_Resolver::get_merged_data() caches data in runtime so it doesn't have to be processed on every call?

Have you been able to measure its performance impact? It seems to be that it would load pretty quickly because the theme.json data has already been parsed and is available in the memory, but I wanted to double-check.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm exploring both the built in Gutenberg perf tests npm run test:performance

...and also

https://github.com/GoogleChromeLabs/wpp-research/tree/main

...on the advice of @adamsilverstein.

Copy link
Contributor Author

@getdave getdave Mar 16, 2023

Choose a reason for hiding this comment

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

Performance test results from CI running on this PR (having rebased against trunk):

>> site-editor

┌──────────────────────┬──────────────────────────────────────────┬──────────────┐
│       (index)        │ f060a497fa86698a5f7e9bc92d168a8a71225fad │    trunk     │
├──────────────────────┼──────────────────────────────────────────┼──────────────┤
│    serverResponse    │                '138.1 ms'                │  '140.7 ms'  │
│      firstPaint      │                '482.2 ms'                │  '400.7 ms'  │
│   domContentLoaded   │                '789.2 ms'                │  '689.8 ms'  │
│        loaded        │                '790.5 ms'                │ '690.93 ms'  │
│ firstContentfulPaint │               '879.53 ms'                │  '782.9 ms'  │
│      firstBlock      │               '1972.53 ms'               │ '1872.07 ms' │
│         type         │                '74.3 ms'                 │  '70.8 ms'   │
│       minType        │                '62.94 ms'                │  '60.88 ms'  │
│       maxType        │               '496.34 ms'                │ '148.81 ms'  │
└──────────────────────┴──────────────────────────────────────────┴──────────────┘

serverResponse is the most important I believe.

Can also be run locally with npm run test:performance.

Copy link
Contributor Author

@getdave getdave Mar 17, 2023

Choose a reason for hiding this comment

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

I've reached out in the #core-performance channel on WordPress Slack for some support here. I know @felixarntz was involved in a previous discussion about preloading media so perhaps he has a view?

Copy link
Member

Choose a reason for hiding this comment

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

I haven't manually tried this change, though running the performance tests locally this PR performs worse in every metric but typing 🤔

  • this PR:

230320-branch-preloading-template-parts

  • trunk

image

Copy link
Member

Choose a reason for hiding this comment

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

I now have tested this locally by throttling to "slow 3g" and loading http://localhost:8889/wp-admin/site-editor.php (which means loading "browse mode", not the site editor in edit mode).

In that setup, the canvas contents take ages to load. Within the canvas, the components that took the most time were navigation and query block. The header template was shown almost immediately, both in trunk and this PR.

Perhaps the stats are a bit misleading for this change, because none measure "everything (or the header) has been rendered". First Contentful Paint is probably rendering the site title "Mindblown: a blog about philosophy". I don't see that we track Largest Contentful Paint, though given the importance of the header for TT3 in the whole template, I'd expect it to be affected by this change.

TLDR: I don't see any positive effect of this change. However! If other people are, I don't want to block this. I'll leave space for others to comment.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sounds like you're seeing different things to me. I'll refine the testing criteria and advise further here.

@getdave getdave requested a review from tyxla March 16, 2023 11:30
@github-actions
Copy link

github-actions bot commented Mar 16, 2023

Flaky tests detected in ef95d35.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/4439126677
📝 Reported issues:

@@ -19,17 +19,26 @@ function gutenberg_preload_template_parts( $preload_paths, $context ) {
return $preload_paths;
}

$theme_slug = wp_get_theme()->get_stylesheet();
// Get any template parts defined in theme.json.
$theme_json_template_parts = WP_Theme_JSON_Resolver::get_merged_data()->get_template_parts();
Copy link
Member

Choose a reason for hiding this comment

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

This looks like a sensible approach 👍

I assume that WP_Theme_JSON_Resolver::get_merged_data() caches data in runtime so it doesn't have to be processed on every call?

Have you been able to measure its performance impact? It seems to be that it would load pretty quickly because the theme.json data has already been parsed and is available in the memory, but I wanted to double-check.

lib/compat/wordpress-6.3/template-parts-preloading.php Outdated Show resolved Hide resolved
lib/compat/wordpress-6.3/template-parts-preloading.php Outdated Show resolved Hide resolved
@getdave getdave force-pushed the try/preload-common-template-parts-editor-loading branch from 4d0148e to 1f27278 Compare March 16, 2023 14:30
@getdave getdave changed the title Improve perceived performance by preloading the most commonly used template part slugs in the Site Editor Improve perceived performance by preloading the template parts defined in Theme JSON when in Site Editor Mar 16, 2023
@getdave getdave requested a review from scruffian March 16, 2023 16:11
@getdave getdave requested a review from youknowriad March 17, 2023 15:25
@getdave
Copy link
Contributor Author

getdave commented Mar 17, 2023

Looping in @youknowriad here as lead architect in case he has a strong opinion on whether preloading only the templateParts defined in the Theme JSON would be a fair compromise to help improve the perceived loading performance of the Site Editor.

}

// Get any template parts defined in theme.json.
$theme_json_template_parts = WP_Theme_JSON_Resolver::get_merged_data()->get_template_parts();
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@anton-vlasenko @ironprogrammer Do you have any idea of how I might be able to mock WP_Theme_JSON_Resolver in a test? I want to write tests but not sure how I could make that testable.

@youknowriad
Copy link
Contributor

Looping in @youknowriad here as lead architect in case he has a strong opinion on whether preloading only the templateParts defined in the Theme JSON would be a fair compromise to help improve the perceived loading performance of the Site Editor.

Yeah, I think that's a good starting point but I'm curious about themes that define multiple headers and multiple footers... Is there a way to get only one header, one footer and one navigation menu (the main ones)

@getdave
Copy link
Contributor Author

getdave commented Mar 20, 2023

Is there a way to get only one header, one footer and one navigation menu (the main ones)

Some things I've thought about but not explored:

  • getting all the wp_templates, parsing the blocks and checking which template_parts are in use.
  • adding post meta to wp_template_part (when added to a template) to indicate it is "in use" and only preloading those

However, I'm mindful of the trade offs for these optimisations. If we're making more queries to avoid making queries for all templates then it seems counter intuative.

That said, if there is some heuristic that can allows us to determine the "main" header/footer then that would be ideal. I'm just not sure there's anything to go on.

@getdave
Copy link
Contributor Author

getdave commented Mar 20, 2023

@youknowriad I wonder if we should also load any template parts that either:

  • contain the string header in the slug

AND/OR

  • are in the header template part area

This would involve adding another item to the preload paths along these lines:

template-parts?area=header

Reason? The current implementation will not preload custom templates created by the user in the editor unless they edited one of the Theme's template parts.

@youknowriad
Copy link
Contributor

Yeah, it's not clear, I guess if there's only a couple (or a max threshold we fix of template areas assigned to the "header" and "footer" areas, it should be fine. But I can see a world where some sites downloads a high number of headers and footers and the preloading becomes a problem. So maybe limit this to the first two headers and footers or something like that.

@getdave
Copy link
Contributor Author

getdave commented Mar 20, 2023

Research

  • preloading only populates a cache for apiFetch on a 1:1 match basis of request path against preload cache key.
  • getEntityRecords will resolve for getEntityRecord so that apiFetch is not dispatched for those records already in the core-data state cache.

As such preloading template-parts?area=header will not avoid apiFetch requests for template-parts//{{theme_slug}}//{{templarte_part_slug}} because the core-data state has no record of having resolved the preloaded data for all template parts. Therefore the request is still dispatched.

}

// Get any template parts defined in theme.json.
$theme_json_template_parts = WP_Theme_JSON_Resolver::get_merged_data()->get_template_parts();
Copy link
Member

Choose a reason for hiding this comment

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

In the plugin, we need to use the classes bundled by Gutenberg: WP_Theme_JSON_Resolver_Gutenberg instead of WP_Theme_JSON_Resolver.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@oandregal On another note it would be nice if there was a stable global function which I could use instead of ::get_merged_data()->get_template_parts(). Is that a good idea?

Copy link
Member

@oandregal oandregal Mar 20, 2023

Choose a reason for hiding this comment

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

Absolutely! We should not use the private classes in places other than the high-level functions (get_global_settings, etc.). It's tracked as part of #45171 (though it's up for anyone to pick it up):

Implement wp_get_custom_templates_from_theme: access to customTemplates defined by the theme

@getdave
Copy link
Contributor Author

getdave commented Mar 20, 2023

But I can see a world where some sites downloads a high number of headers and footers and the preloading becomes a problem. So maybe limit this to the first two headers and footers or something like that.

I've updated the PR to only preload the first 3 template parts that are listed in the theme.json under the templateParts key and whose area property is header.

So we

  • selective in the template parts we are preloading
  • avoid making too many requests
  • avoid making queries for queries
  • optimise for the most common use case

How do you feel about this now?

@getdave getdave requested a review from anton-vlasenko March 20, 2023 17:08
@getdave getdave force-pushed the try/preload-common-template-parts-editor-loading branch from 3847f23 to 72336e2 Compare March 21, 2023 09:07
@getdave
Copy link
Contributor Author

getdave commented Mar 21, 2023

Ok folks this is very strange - the original loading problem I was seeing is now not reproduceable. It's possible something changed underneath me in which case great because this no longer seems to be an issue.

I'm going to refocus my attention at the Nav block specific loading issues.

@getdave getdave closed this Mar 21, 2023
@github-actions
Copy link

Size Change: 0 B

Total Size: 1.34 MB

ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 993 B
build/annotations/index.min.js 2.78 kB
build/api-fetch/index.min.js 2.27 kB
build/autop/index.min.js 2.15 kB
build/blob/index.min.js 483 B
build/block-directory/index.min.js 7.2 kB
build/block-directory/style-rtl.css 1.04 kB
build/block-directory/style.css 1.04 kB
build/block-editor/content-rtl.css 4.11 kB
build/block-editor/content.css 4.1 kB
build/block-editor/default-editor-styles-rtl.css 403 B
build/block-editor/default-editor-styles.css 403 B
build/block-editor/index.min.js 197 kB
build/block-editor/style-rtl.css 14.4 kB
build/block-editor/style.css 14.4 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 122 B
build/block-library/blocks/audio/style.css 122 B
build/block-library/blocks/audio/theme-rtl.css 138 B
build/block-library/blocks/audio/theme.css 138 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 91 B
build/block-library/blocks/avatar/style.css 91 B
build/block-library/blocks/block/editor-rtl.css 305 B
build/block-library/blocks/block/editor.css 305 B
build/block-library/blocks/button/editor-rtl.css 587 B
build/block-library/blocks/button/editor.css 587 B
build/block-library/blocks/button/style-rtl.css 628 B
build/block-library/blocks/button/style.css 627 B
build/block-library/blocks/buttons/editor-rtl.css 337 B
build/block-library/blocks/buttons/editor.css 337 B
build/block-library/blocks/buttons/style-rtl.css 332 B
build/block-library/blocks/buttons/style.css 332 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 B
build/block-library/blocks/categories/editor-rtl.css 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 100 B
build/block-library/blocks/categories/style.css 100 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 406 B
build/block-library/blocks/columns/style.css 406 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 199 B
build/block-library/blocks/comment-template/style.css 198 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 840 B
build/block-library/blocks/comments/editor.css 839 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 636 B
build/block-library/blocks/cover/editor-rtl.css 612 B
build/block-library/blocks/cover/editor.css 613 B
build/block-library/blocks/cover/style-rtl.css 1.6 kB
build/block-library/blocks/cover/style.css 1.59 kB
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 B
build/block-library/blocks/embed/style-rtl.css 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 138 B
build/block-library/blocks/embed/theme.css 138 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 265 B
build/block-library/blocks/file/style.css 265 B
build/block-library/blocks/file/view.min.js 353 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 984 B
build/block-library/blocks/gallery/editor.css 988 B
build/block-library/blocks/gallery/style-rtl.css 1.55 kB
build/block-library/blocks/gallery/style.css 1.55 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 654 B
build/block-library/blocks/group/editor.css 654 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 76 B
build/block-library/blocks/heading/style.css 76 B
build/block-library/blocks/html/editor-rtl.css 332 B
build/block-library/blocks/html/editor.css 333 B
build/block-library/blocks/image/editor-rtl.css 830 B
build/block-library/blocks/image/editor.css 829 B
build/block-library/blocks/image/style-rtl.css 652 B
build/block-library/blocks/image/style.css 652 B
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 507 B
build/block-library/blocks/media-text/style.css 505 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 716 B
build/block-library/blocks/navigation-link/editor.css 715 B
build/block-library/blocks/navigation-link/style-rtl.css 115 B
build/block-library/blocks/navigation-link/style.css 115 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation/editor-rtl.css 2.13 kB
build/block-library/blocks/navigation/editor.css 2.14 kB
build/block-library/blocks/navigation/style-rtl.css 2.22 kB
build/block-library/blocks/navigation/style.css 2.2 kB
build/block-library/blocks/navigation/view-modal.min.js 2.81 kB
build/block-library/blocks/navigation/view.min.js 447 B
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 401 B
build/block-library/blocks/page-list/editor.css 401 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 174 B
build/block-library/blocks/paragraph/editor.css 174 B
build/block-library/blocks/paragraph/style-rtl.css 279 B
build/block-library/blocks/paragraph/style.css 281 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 501 B
build/block-library/blocks/post-comments-form/style.css 501 B
build/block-library/blocks/post-date/style-rtl.css 61 B
build/block-library/blocks/post-date/style.css 61 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 134 B
build/block-library/blocks/post-excerpt/style.css 134 B
build/block-library/blocks/post-featured-image/editor-rtl.css 586 B
build/block-library/blocks/post-featured-image/editor.css 584 B
build/block-library/blocks/post-featured-image/style-rtl.css 322 B
build/block-library/blocks/post-featured-image/style.css 322 B
build/block-library/blocks/post-navigation-link/style-rtl.css 153 B
build/block-library/blocks/post-navigation-link/style.css 153 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 282 B
build/block-library/blocks/post-template/style.css 282 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/editor-rtl.css 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 326 B
build/block-library/blocks/pullquote/style.css 325 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/query/editor-rtl.css 463 B
build/block-library/blocks/query/editor.css 463 B
build/block-library/blocks/quote/style-rtl.css 222 B
build/block-library/blocks/quote/style.css 222 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 132 B
build/block-library/blocks/read-more/style.css 132 B
build/block-library/blocks/rss/editor-rtl.css 149 B
build/block-library/blocks/rss/editor.css 149 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 409 B
build/block-library/blocks/search/style.css 406 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 234 B
build/block-library/blocks/separator/style.css 234 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 474 B
build/block-library/blocks/shortcode/editor.css 474 B
build/block-library/blocks/site-logo/editor-rtl.css 489 B
build/block-library/blocks/site-logo/editor.css 489 B
build/block-library/blocks/site-logo/style-rtl.css 203 B
build/block-library/blocks/site-logo/style.css 203 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 116 B
build/block-library/blocks/site-title/editor.css 116 B
build/block-library/blocks/site-title/style-rtl.css 57 B
build/block-library/blocks/site-title/style.css 57 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 B
build/block-library/blocks/social-links/editor-rtl.css 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/social-links/style-rtl.css 1.4 kB
build/block-library/blocks/social-links/style.css 1.39 kB
build/block-library/blocks/spacer/editor-rtl.css 332 B
build/block-library/blocks/spacer/editor.css 332 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 433 B
build/block-library/blocks/table/editor.css 433 B
build/block-library/blocks/table/style-rtl.css 651 B
build/block-library/blocks/table/style.css 650 B
build/block-library/blocks/table/theme-rtl.css 157 B
build/block-library/blocks/table/theme.css 157 B
build/block-library/blocks/tag-cloud/style-rtl.css 251 B
build/block-library/blocks/tag-cloud/style.css 253 B
build/block-library/blocks/template-part/editor-rtl.css 404 B
build/block-library/blocks/template-part/editor.css 404 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 99 B
build/block-library/blocks/verse/style.css 99 B
build/block-library/blocks/video/editor-rtl.css 552 B
build/block-library/blocks/video/editor.css 555 B
build/block-library/blocks/video/style-rtl.css 179 B
build/block-library/blocks/video/style.css 179 B
build/block-library/blocks/video/theme-rtl.css 139 B
build/block-library/blocks/video/theme.css 139 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.11 kB
build/block-library/common.css 1.11 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 11.6 kB
build/block-library/editor.css 11.6 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 201 kB
build/block-library/reset-rtl.css 478 B
build/block-library/reset.css 478 B
build/block-library/style-rtl.css 12.7 kB
build/block-library/style.css 12.7 kB
build/block-library/theme-rtl.css 698 B
build/block-library/theme.css 703 B
build/block-serialization-default-parser/index.min.js 1.13 kB
build/block-serialization-spec-parser/index.min.js 2.83 kB
build/blocks/index.min.js 51 kB
build/components/index.min.js 208 kB
build/components/style-rtl.css 11.7 kB
build/components/style.css 11.7 kB
build/compose/index.min.js 12.4 kB
build/core-data/index.min.js 16.3 kB
build/customize-widgets/index.min.js 12.2 kB
build/customize-widgets/style-rtl.css 1.41 kB
build/customize-widgets/style.css 1.41 kB
build/data-controls/index.min.js 663 B
build/data/index.min.js 8.62 kB
build/date/index.min.js 40.4 kB
build/deprecated/index.min.js 518 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.72 kB
build/edit-post/classic-rtl.css 571 B
build/edit-post/classic.css 571 B
build/edit-post/index.min.js 34.8 kB
build/edit-post/style-rtl.css 7.55 kB
build/edit-post/style.css 7.54 kB
build/edit-site/index.min.js 65.5 kB
build/edit-site/style-rtl.css 10.2 kB
build/edit-site/style.css 10.2 kB
build/edit-widgets/index.min.js 17.3 kB
build/edit-widgets/style-rtl.css 4.56 kB
build/edit-widgets/style.css 4.56 kB
build/editor/index.min.js 45.8 kB
build/editor/style-rtl.css 3.54 kB
build/editor/style.css 3.53 kB
build/element/index.min.js 4.95 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 7.26 kB
build/format-library/style-rtl.css 557 B
build/format-library/style.css 556 B
build/hooks/index.min.js 1.66 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.79 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.79 kB
build/keycodes/index.min.js 1.94 kB
build/list-reusable-blocks/index.min.js 2.14 kB
build/list-reusable-blocks/style-rtl.css 865 B
build/list-reusable-blocks/style.css 865 B
build/media-utils/index.min.js 2.99 kB
build/notices/index.min.js 977 B
build/plugins/index.min.js 1.95 kB
build/preferences-persistence/index.min.js 2.23 kB
build/preferences/index.min.js 1.35 kB
build/primitives/index.min.js 960 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 937 B
build/react-i18n/index.min.js 702 B
build/react-refresh-entry/index.min.js 8.44 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/redux-routine/index.min.js 2.75 kB
build/reusable-blocks/index.min.js 2.26 kB
build/reusable-blocks/style-rtl.css 265 B
build/reusable-blocks/style.css 265 B
build/rich-text/index.min.js 11.1 kB
build/server-side-render/index.min.js 2.09 kB
build/shortcode/index.min.js 1.52 kB
build/style-engine/index.min.js 1.53 kB
build/token-list/index.min.js 650 B
build/url/index.min.js 3.74 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.8 kB
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 1.09 kB
build/warning/index.min.js 280 B
build/widgets/index.min.js 7.3 kB
build/widgets/style-rtl.css 1.18 kB
build/widgets/style.css 1.18 kB
build/wordcount/index.min.js 1.06 kB

compressed-size-action

@oandregal oandregal deleted the try/preload-common-template-parts-editor-loading branch March 23, 2023 12:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Template Part Affects the Template Parts Block [Type] Performance Related to performance efforts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants