Vue lecture

Sortie de µJS, une bibliothèque JavaScript légère pour dynamiser un site sans framework

µ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…).

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 :

<script src="https://cdn.jsdelivr.net/npm/@digicreon/mujs/dist/mu.min.js"></script>
<script>mu.init();</script>

Via npm :

npm install @digicreon/mujs

Exemple 1 : navigation AJAX sans configuration

Par défaut, tous les liens internes sont interceptés automatiquement. Le <body> de la page cible remplace le <body> courant.

<!DOCTYPE html>
<html>
<head>
    <title>Mon site</title>
</head>
<body>
    <nav>
        <a href="/">Accueil</a>
        <a href="/articles">Articles</a>
        <a href="/contact">Contact</a>
    </nav>

    <main id="contenu">
        <p>Contenu de la page.</p>
    </main>

    <script src="https://cdn.jsdelivr.net/npm/@digicreon/mujs/dist/mu.min.js"></script>
    <script>mu.init();</script>
</body>
</html>

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 <body> entier :

<a href="/articles" mu-target="#contenu" mu-source="#contenu">Articles</a>

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) :

<script>
mu.init({
    target: "#contenu",
    source: "#contenu"
});
</script>

Exemple 2 : recherche en direct avec debounce

<input type="text" name="q"
       mu-trigger="change"
       mu-debounce="300"
       mu-url="/recherche"
       mu-target="#resultats"
       mu-source="#resultats"
       mu-mode="update">

<div id="resultats"></div>

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 :

<form action="/commentaire/ajouter" method="post" mu-mode="patch">
    <textarea name="contenu"></textarea>
    <button type="submit">Envoyer</button>
</form>

<ul id="commentaires">
    <!-- liste des commentaires -->
</ul>

<span id="compteur">3 commentaires</span>

Le serveur retourne plusieurs fragments HTML dans une seule réponse. Chaque fragment indique sa cible via mu-patch-target :

<!-- Ajoute le nouveau commentaire à la liste -->
<li class="commentaire" mu-patch-target="#commentaires" mu-patch-mode="append">
    <p>Le nouveau commentaire</p>
</li>

<!-- Met à jour le compteur -->
<span mu-patch-target="#compteur">4 commentaires</span>

<!-- Réinitialise le formulaire -->
<form action="/commentaire/ajouter" method="post" mu-patch-target="form">
    <textarea name="contenu"></textarea>
    <button type="submit">Envoyer</button>
</form>

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.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Aussi terrifiant que pénible... Notre critique de Fatal Frame II : Crimson Butterfly, le remake qui manque (de peu) son objectif

TEST - La saga d’horreur japonaise revient d’entre les morts, espérant concurrencer les mastodontes Resident Evil et Silent Hill. Problème : cette remise au goût du jour, toujours aussi rigide, est desservie par de l’action introduite au forceps.

© Koei Tecmo / Team Ninja

Mio et Mayu seront poursuivies par de nombreux fantômes tout au long des huit heures de jeu.
  •  

«C’est une question de principe» : une dirigeante d'OpenAI démissionne après l'accord avec le Pentagone

Caitlin Kalinowski, directrice générale de la branche robotique du géant américain de l’IA, estime que l’annonce du partenariat avec le gouvernement américain est «précipitée».

© Bhawika Chhabra / REUTERS

La société OpenAI, à l’origine de ChatGPT, a obtenu un contrat avec le Pentagone en février. Une décision «précipitée» selon une dirigeante, qui a démissionné.
  •  

Florajet victime d’une cyberattaque, plus d’un million de messages intimes accompagnant des bouquets exposés

Le géant de la livraison de fleurs Florajet a été victime d’un piratage. Si la fuite ne comporte «aucune donnée bancaire» ni «aucun mot de passe», plus de 1,4 million de bons de commande ont été volés et mis en vente sur le dark web.

© Unclesam / stock.adobe.com

L’entreprise Florajet a été victime d’une fuite de données révélée mardi 3 mars.
  •  

Le jour où Wikipédia s’est « auto-piratée » et a causé la paralysie de l’encyclopédie pendant des heures

Wikipédia a clairement connu de meilleurs jeudis. Le 5 mars 2026, le projet encyclopédique a été soudainement figé en mode « lecture seule » pendant quelques heures. Derrière cette paralysie ne se cache pas un redoutable groupe de pirates informatiques, mais une équipe de Wikimédia réalisant un test de sécurité.

  •  

Le jour où Wikipédia s’est « auto-piratée » et a causé la paralysie de l’encyclopédie pendant des heures

Wikipédia a clairement connu de meilleurs jeudis. Le 5 mars 2026, le projet encyclopédique a été soudainement figé en mode « lecture seule » pendant quelques heures. Derrière cette paralysie ne se cache pas un redoutable groupe de pirates informatiques, mais une équipe de Wikimédia réalisant un test de sécurité.

  •  

Une cyberattaque sur les transports londoniens a fait fuiter les données de dix millions de personnes, assure la BBC

Le BBC a eu accès aux données volées grâce à une source issue du milieu du piratage informatique, évoquant des noms, adresses emails ou encore numéros de téléphone ou adresses postales «d’environ 10 millions de personnes».

© Claudio Divizia / stock.adobe.com

Contacté par l’AFP, TfL, qui dénombre jusqu’à 5 millions de trajets par jour dans le seul métro londonien, dit avoir envoyé un mail au moment de l’incident en septembre 2024 «à tous les clients pour lesquels nous avions une adresse électronique», soit plus de 7 millions. 
  •  

Le jour où Wikipédia s’est « auto-piratée » et a causé la paralysie de l’encyclopédie pendant des heures

Wikipédia a clairement connu de meilleurs jeudis. Le 5 mars 2026, le projet encyclopédique a été soudainement figé en mode « lecture seule » pendant quelques heures. Derrière cette paralysie ne se cache pas un redoutable groupe de pirates informatiques, mais une équipe de Wikimédia réalisant un test de sécurité.

  •  

Le gouvernement Trump classe officiellement Anthropic comme entreprise «à risque»

Donald Trump avait ordonné vendredi à son gouvernement de «cesser immédiatement toute utilisation» des logiciels d’Anthropic, sanction liée au refus de l’entreprise de lever des restrictions d’usage à son intelligence artificielle.

© Dado Ruvic / REUTERS

La décision du gouvernement pourrait priver la jeune société californienne Anthropic d’une puissance de calcul sans laquelle elle ne peut développer et faire fonctionner son IA.
  •  

Cérémonie des Pégases : Clair Obscur: Expedition 33 sacré meilleur jeu vidéo français de l’année

Une consécration attendue pour ce jeu de rôle inspiré du Paris de la Belle Époque, qui avait déjà remporté en décembre le titre de meilleur jeu aux Game Awards à Los Angeles.

© Sandfall Interactive / Kepler Interactive

Maëlle, l’un des personnages principaux de Clair Obscur: Expedition 33.
  •  

Le forum cybercriminel Leakbase, plaque tournante du vol de données, démantelé par les autorités internationales

Leakbase était considéré par les autorités et les observateurs comme l’un des forums cybercriminels les plus sophistiqués du dark web. Des millions de données personnelles volées étaient mises en vente sur le site.

© Europol

Une policière lors de l’opération d’Europol contre Leakbase.
  •  

Ouvrir un compte chez Fortuneo peut vous rapporter jusqu’à 250 euros : voici la marche à suivre [Sponso]

Cet article a été réalisé en collaboration avec Fortuneo

Vous attendiez la bonne opportunité pour ouvrir un compte de dépôt dans une banque en ligne ? Jusqu’au 25 mars 2026, Fortuneo offre à ses nouveaux clients jusqu’à 250 euros(2). Voici quelles conditions remplir et comment procéder pour en bénéficier. 

Cet article a été réalisé en collaboration avec Fortuneo

Il s’agit d’un contenu créé par des rédacteurs indépendants au sein de l’entité Humanoid xp. L’équipe éditoriale de Numerama n’a pas participé à sa création. Nous nous engageons auprès de nos lecteurs pour que ces contenus soient intéressants, qualitatifs et correspondent à leurs intérêts.

En savoir plus

  •  
❌