perf: add defer to scripts and lazy loading to images
Some checks failed
CI / ruff (push) Successful in 14s
CI / validate (push) Has been cancelled
CI / dependency-scanning (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled
CI / pytest (push) Has been cancelled

Add defer attribute to 145 <script> tags across 103 template files
(PERF-067) and loading="lazy" to 22 <img> tags across 13 template
files (PERF-058). Both improve page load performance.

Validator totals: 0 errors, 2 warnings, 1360 info (down from 1527).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-16 20:55:52 +01:00
parent 3a7cf29386
commit 8ee8c398ce
110 changed files with 193 additions and 193 deletions

View File

@@ -306,7 +306,7 @@
{# JavaScript Loading Order (CRITICAL - must be in this order) #}
{# 1. Log Configuration (must load first) #}
<script src="{{ url_for('static', path='shared/js/log-config.js') }}"></script>
<script defer src="{{ url_for('static', path='shared/js/log-config.js') }}"></script>
{# 2. Global Shop Configuration (resolved via PlatformSettingsService) #}
<script>
@@ -318,16 +318,16 @@
</script>
{# 3. Icon System #}
<script src="{{ url_for('static', path='shared/js/icons.js') }}"></script>
<script defer src="{{ url_for('static', path='shared/js/icons.js') }}"></script>
{# 4. Base Shop Layout (Alpine.js component - must load before Alpine) #}
<script src="{{ url_for('static', path='storefront/js/storefront-layout.js') }}"></script>
<script defer src="{{ url_for('static', path='storefront/js/storefront-layout.js') }}"></script>
{# 5. Utilities #}
<script src="{{ url_for('static', path='shared/js/utils.js') }}"></script>
<script defer src="{{ url_for('static', path='shared/js/utils.js') }}"></script>
{# 5b. i18n Support #}
<script src="{{ url_for('static', path='shared/js/i18n.js') }}"></script>
<script defer src="{{ url_for('static', path='shared/js/i18n.js') }}"></script>
<script>
// Initialize i18n with storefront language and preload modules
(async function() {
@@ -337,7 +337,7 @@
</script>
{# 6. API Client #}
<script src="{{ url_for('static', path='shared/js/api-client.js') }}"></script>
<script defer src="{{ url_for('static', path='shared/js/api-client.js') }}"></script>
{# 7. Alpine.js with CDN fallback (deferred - loads last) #}
<script>
@@ -365,4 +365,4 @@
<div id="toast-container" class="fixed bottom-4 right-4 z-50"></div>
</body>
</html>
</html>