Skip to content

perf(plugins): Init frontend TOC on DOMContentLoaded - #25

Closed
rsanchez-beapi wants to merge 1 commit into
developfrom
perf/toc-init-domcontentloaded
Closed

rsanchez-beapi wants to merge 1 commit into
developfrom
perf/toc-init-domcontentloaded

Conversation

@rsanchez-beapi

Copy link
Copy Markdown
Contributor

Context

Cette PR accélère l’initialisation front du bloc table des matières : le surlignage sticky des titres ne doit plus attendre la fin du chargement de toutes les ressources de la page.

Objectif produit : le TOC sticky devient actif plus tôt, sans changer le markup ni le comportement d’observation des titres.

Changement principaux

Script de vue front

  • Remplacement de l’écoute window load par DOMContentLoaded dans src/view.js.
  • Ajout d’une garde document.readyState : si le document est déjà interactive / complete, l’init part tout de suite.

Note : l’init ne dépend que du DOM (liens TOC + IDs de titres). Attendre load n’apportait pas de garantie utile ici.

Version

  • Passage du plugin en 1.0.6 (PHP, block.json, package.json, changelog, readme.txt, .plugin-data).

Détails technique

  • Fichiers : src/view.js, blockparty-table-of-content.php, src/block.json, package.json, CHANGELOG.md, readme.txt, .plugin-data, artefacts build/ après compilation.
  • Blueprint Playground : le ref git tag 1.0.5 n’est pas modifié dans cette PR.

Critère d'acceptation

  • Sur une page avec TOC sticky + images lourdes, le titre actif se met à jour avant la fin du chargement des images.
  • Les liens TOC et getElementById ciblent toujours les bons titres.
  • Rechargement tardif / cache : le TOC s’initialise encore (pas de page « morte » si DOMContentLoaded est déjà passé).
  • npm run build + lint JS OK.

Documentation

Aucune.

Breaking changes

None.

- Start sticky heading highlight after HTML parse instead of waiting for window load (images and other subresources).
- Guard with document.readyState so init still runs if the view script executes after DOMContentLoaded.
- Bump plugin version to 1.0.6.

@firestar300 firestar300 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

On ne bump pas la version du plugin à ce niveau là.

@rsanchez-beapi
rsanchez-beapi deleted the perf/toc-init-domcontentloaded branch August 28, 2026 10:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants