8000 [WebProfilerBundle] Improve performance · symfony/symfony@cae2cb9 · GitHub
[go: up one dir, main page]

Skip to content

Commit cae2cb9

Browse files
committed
[WebProfilerBundle] Improve performance
1 parent 78c6ceb commit cae2cb9

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/base.html.twig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<meta charset="{{ _charset }}" />
55
<meta name="robots" content="noindex,nofollow" />
66
<meta name="viewport" content="width=device-width,initial-scale=1" />
7+
<meta name="view-transition" content="same-origin">
78
<title>{% block title %}Symfony Profiler{% endblock %}</title>
89

910
{% set request_collector = profile is defined ? profile.collectors.request|default(null) : null %}

src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/base_js.html.twig

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,37 @@
55
them as JavaScript source code. Always use '/*' comments instead
66
of '//' comments to avoid impossible-to-debug side-effects #}
77
<script{% if csp_script_nonce is defined and csp_script_nonce %} nonce="{{ csp_script_nonce }}"{% endif %}>
8-
window.addEventListener('DOMContentLoaded', () => {
8+
document.addEventListener('DOMContentLoaded', () => {
99
new SymfonyProfiler();
1010
});
1111
1212
class SymfonyProfiler {
1313
constructor() {
14+
this.#reorderMainMenuItems();
1415
this.#createTabs();
15-
this.#createTableSearchFields();
16-
this.#createToggles();
17-
this.#createCopyToClipboard();
18-
this.#convertDateTimesToUserTimezone();
16+
17+
setTimeout(() => {
18+
this.#createTableSearchFields();
19+
this.#createToggles();
20+
this.#createCopyToClipboard();
21+
this.#convertDateTimesToUserTimezone();
22+
}, 0);
23+
}
24+
25+
#reorderMainMenuItems() {
26+
/* reorder the main menu items to always display first the non-disabled items */
27+
const mainMenuElement = document.querySelector('#menu-profiler');
28+
const mainMenuItems = mainMenuElement.querySelectorAll('li');
29+
const firstDisabledMenuItem = mainMenuElement.querySelector('li a > span.disabled')?.parentNode?.parentNode;
30+
if (!firstDisabledMenuItem) {
31+
return;
32+
}
33+
mainMenuItems.forEach(menuItem => {
34+
const isDisabled = menuItem.querySelector('a > span.disabled');
35+
if (!isDisabled) {
36+
mainMenuElement.insertBefore(menuItem, firstDisabledMenuItem);
37+
}
38+
});
1939
}
2040
2141
#createTabs() {

0 commit comments

Comments
 (0)
0