URL: https://linuxfr.org/news/sortie-de-js-une-bibliotheque-javascript-legere-pour-dynamiser-un-site-sans-framework Title: Sortie de μJS, une bibliothèque JavaScript légère pour dynamiser un site sans framework Authors: Amaury Bouchard Ysabeau 🧶 Date: 2026年03月08日T10:12:40+01:00 License: CC By-SA Tags: javascript et web Score: 34 μJS est une bibliothèque JavaScript open source (licence MIT) qui permet de rendre un site web dynamique sans recourir à un framework frontend lourd. Elle s’inspire de pjax, Turbo et HTMX, avec pour objectif d’être plus simple et plus légère. ## Principe de fonctionnement μJS intercepte les clics sur les liens et les soumissions de formulaires pour charger les pages via AJAX, au lieu de déclencher un rechargement complet du navigateur. Le contenu récupéré remplace tout ou partie de la page courante. Le résultat : une navigation fluide, sans rechargement visible, sans écrire une seule ligne de JavaScript. Aucune étape de build, aucune dépendance, compatible avec n’importe quel backend (PHP, Python, Go, Ruby...). ---- [Site officiel](https://mujs.org) [Playground interactif](https://mujs.org/playground) [Dépôt GitHub](https://github.com/Digicreon/muJS) [Article de blog](https://www.geek-directeur-technique.com/2026/03/06/%c2%b5js-rendre-un-site-web-dynamique-sans-framework-front) ---- ## Fonctionnalités principales - Mode patch : mettre à jour plusieurs fragments du DOM en une seule requête, via des attributs `mu-patch-target` dans la réponse HTML du serveur - SSE : mises à jour en temps réel via Server-Sent Events - DOM morphing : préservation de l’état du DOM (focus, scroll, transitions CSS) via idiomorph - View Transitions : animations fluides entre les états de page, via l’API native du navigateur - Prefetch : préchargement de la page cible au survol d’un lien - Polling : rafraîchissement automatique d’un fragment à intervalle régulier - Verbes HTTP complets : GET, POST, PUT, PATCH, DELETE sur n’importe quel élément - Barre de progression : intégrée, sans dépendance externe ## Installation Via CDN : ```html ``` Via npm : ```shell npm install @digicreon/mujs ``` ## Exemple 1 : navigation AJAX sans configuration Par défaut, tous les liens internes sont interceptés automatiquement. Le `

Mon site

` de la page cible remplace le `` courant. ```html Mon site

Contenu de la page.

AltStyle によって変換されたページ (->オリジナル) /

``` Aucun attribut supplémentaire. Les boutons retour/avant du navigateur fonctionnent, l’URL est mise à jour, le titre de la page aussi. Pour ne remplacer qu’un fragment de la page plutôt que le `` entier : ```html Articles ``` Dans ce cas, μJS va récupérer la page `/articles`, va extraire l’élément `#contenu` de la réponse, et remplace l’élément `#contenu` courant avec. Si tous les changements de pages se font dans l’élément `#contenu`, on peut généraliser dans la configuration (pour éviter d’avoir à mettre des attributs `mu-target` et `mu-source` sur tous les liens) : ```html ``` ## Exemple 2 : recherche en direct avec debounce ```html ``` Le serveur reçoit une requête GET vers `/recherche?q=...` et retourne un fragment HTML. μJS l'injecte dans `#resultats`. Aucun JavaScript à écrire côté client. ## Exemple 3 : mise à jour de plusieurs fragments en une seule requête (patch mode) Côté HTML : ```html
3 commentaires ``` Le serveur retourne plusieurs fragments HTML dans une seule réponse. Chaque fragment indique sa cible via `mu-patch-target` : ```html
  • Le nouveau commentaire

  • 4 commentaires
    ``` Une seule requête HTTP, trois fragments mis à jour simultanément. Le serveur garde le contrôle total sur ce qui est mis à jour et comment.