Mise en cache efficace des polices avec les Service Workers

2025-09-04

Cet extrait de code montre comment un service worker met efficacement en cache les ressources de polices. Il utilise `CacheStorage` pour mettre les polices en cache et inclut un mécanisme de versioning pour éviter les interférences des caches obsolètes. Lorsqu'une police est demandée, le service worker vérifie d'abord le cache ; s'il y a une correspondance, il la retourne directement ; sinon, il la récupère sur le réseau et l'ajoute au cache, en gérant les erreurs de requête réseau au passage. Le code utilise intelligemment la méthode `clone()` pour éviter les problèmes de consommation de ressources.

Lire plus
Développement Polices

Maîtriser l'élément HTML `<template>` : Shadow DOM déclaratif et astuces avec DocumentFragment

2025-09-03

Cet article explore les puissantes capacités de l'élément HTML ``, en se concentrant sur son utilisation avec l'attribut `shadowrootmode` pour la création d'un Shadow DOM déclaratif. Il explique en détail les valeurs `open` et `closed` de `shadowrootmode`, ainsi que l'utilisation d'attributs tels que `shadowrootclonable`, `shadowrootdelegatesfocus` et `shadowrootserializable`. De plus, l'article illustre comment manipuler DocumentFragment à l'aide de la propriété `content` de l'élément ``, en évitant habilement les pièges potentiels de DocumentFragment. Grâce à des exemples de code concrets, il montre comment insérer et mettre à jour dynamiquement des éléments DOM, et comment tirer parti du Shadow DOM pour l'encapsulation des styles et le développement basé sur les composants.

Lire plus
Développement modèle HTML

Le Debouncing en Programmation : Gestion Efficace des Entrées Utilisateur

2025-08-07
Le Debouncing en Programmation : Gestion Efficace des Entrées Utilisateur

En programmation, le debouncing est une technique utilisée pour gérer les événements fréquents, tels que les entrées utilisateur continues. Il ignore les opérations qui se produisent trop près les unes des autres dans un intervalle de temps spécifique, les consolidant en une seule invocation pour éviter les ralentissements de l'interface utilisateur. Par exemple, lorsqu'un utilisateur tape une requête de recherche, le debouncing attend une pause avant d'exécuter la recherche, améliorant ainsi l'efficacité et l'expérience utilisateur. Similaire au throttling, mais contrairement au throttling qui limite la fréquence des opérations continues, le debouncing attend une période d'inactivité avant d'agir.

Lire plus

Anniversaire de MDN : Gâteaux, collaboration et communauté

2025-07-25
Anniversaire de MDN : Gâteaux, collaboration et communauté

Dans le monde du web, l'échange de gâteaux pour marquer des étapes importantes est une tradition appréciée entre les fabricants de navigateurs. Microsoft a envoyé des gâteaux à Mozilla pour les sorties de Firefox, et maintenant web.dev a offert un gâteau d'anniversaire à MDN, reconnaissant la contribution significative de MDN à la communauté mondiale des développeurs. Atteignant des millions de développeurs chaque mois et comptant plus de 100 000 contributeurs, MDN exprime sa gratitude à sa communauté passionnée, en espérant 20 années supplémentaires d'autonomisation des développeurs et de construction d'un meilleur web ensemble.

Lire plus
Développement

CSS Paint Worklet : Personnalisez vos images d'arrière-plan

2025-05-26
CSS Paint Worklet : Personnalisez vos images d'arrière-plan

Cet exemple montre comment créer des images d'arrière-plan dynamiques à l'aide de CSS Paint Worklet. En définissant les propriétés personnalisées `--boxColor` et `--widthSubtractor`, et en utilisant le sélecteur CSS `nth-of-type`, nous générons des images d'arrière-plan avec des couleurs et des largeurs variables pour les éléments de liste. Le JavaScript enregistre un script de paint worklet externe, `boxbg.js`, qui contient la logique de dessin de l'arrière-plan. Le résultat final est personnalisable ; modifiez les valeurs des propriétés personnalisées dans les outils de développement pour modifier les couleurs et les largeurs.

Lire plus

Suppression des niveaux de titre implicites de HTML

2025-04-11
Suppression des niveaux de titre implicites de HTML

La spécification HTML définissait auparavant un algorithme de contour qui déterminait implicitement le niveau de titre sémantique des éléments

en fonction de leur imbrication dans des éléments de section (, , , ). Les navigateurs affichaient section > h1 avec la même taille de police et les mêmes marges que

, section > section > h1 comme

, etc. Ce rendu par défaut se trouvait dans les feuilles de style UA du navigateur, mais pas dans l'arbre d'accessibilité (utilisé par les lecteurs d'écran). Les sites web utilisant des éléments de section voyaient inopinément ces niveaux de titre générés automatiquement. Cela a causé une confusion quant à l'utilisation de

, une gestion incohérente des outils et l'algorithme a été jugé problématique. L'algorithme a été supprimé en 2022, mais les règles des feuilles de style UA sont restées. Désormais, les fournisseurs de navigateurs suppriment ces styles par défaut.

Lire plus
Développement

Contrôle global de la confidentialité (GPC) : une solution pour le suivi Web ?

2025-03-16
Contrôle global de la confidentialité (GPC) : une solution pour le suivi Web ?

Contrairement à son prédécesseur, « Ne pas suivre » (DNT), le signal de Contrôle global de la confidentialité (GPC) bénéficie du soutien du procureur général de Californie et vise à s'aligner sur le RGPD de l'UE, conférant aux utilisateurs un pouvoir sans précédent. L'inefficacité de DNT résultait de l'absence d'application juridique, mais GPC change cela. Il transmet les demandes de « Ne pas vendre » des utilisateurs aux sites Web, les obligeant à se conformer. Avec le soutien de navigateurs tels que Mozilla Firefox, Brave et le navigateur Privacy de DuckDuckGo, GPC signale un possible tournant dans la lutte contre le suivi Web.

Lire plus
Technologie suivi Web

API Temporal : Révolutionner la gestion des dates et des heures en JavaScript

2025-01-30
API Temporal : Révolutionner la gestion des dates et des heures en JavaScript

L'API Temporal simplifie la manipulation des dates et des heures en JavaScript. Elle prend en charge différents systèmes de calendrier (comme le calendrier lunaire chinois), gère les conversions de fuseau horaire de manière transparente et offre des méthodes de comparaison intuitives. Par exemple, elle peut calculer le prochain Nouvel An chinois ou déterminer la durée jusqu'à un timestamp Unix futur. Bien que le comportement de `toLocaleString` varie légèrement selon les implémentations des navigateurs, l'API Temporal offre des opérations robustes sur les dates et les heures, ce qui en fait une aubaine pour les développeurs.

Lire plus
Développement Date Heure

Les ressources d'apprentissage de MDN reçoivent une mise à jour majeure : une nouvelle expérience d'apprentissage lancée

2024-12-25
Les ressources d'apprentissage de MDN reçoivent une mise à jour majeure : une nouvelle expérience d'apprentissage lancée

En décembre 2024, MDN a lancé une mise à jour majeure de sa section « Apprendre le développement web », fusionnant le programme d'études MDN avec le contenu d'apprentissage existant pour créer un chemin d'apprentissage plus rationalisé. Cette mise à jour vise à résoudre les problèmes précédents, tels que le contenu volumineux et les chemins d'apprentissage peu clairs, offrant une expérience plus claire et plus accessible aux débutants. Le nouveau site utilise une structure modulaire avec les sections « Démarrage », « Noyau » et « Extensions », intégrant des objectifs d'apprentissage clairs et un contenu interactif. MDN continuera d'améliorer le contenu et la conception, dans le but de fournir des ressources d'apprentissage encore meilleures à l'avenir.

Lire plus