Almacenamiento en caché eficiente de fuentes con Service Workers

2025-09-04

Este fragmento de código muestra cómo un service worker almacena en caché de forma eficiente los recursos de fuentes. Utiliza `CacheStorage` para almacenar fuentes en caché e incluye un mecanismo de control de versiones para evitar que las cachés obsoletas interfieran. Cuando se solicita una fuente, el service worker primero comprueba la caché; si hay una coincidencia, la devuelve directamente; de lo contrario, la recupera de la red y la añade a la caché, gestionando los errores de solicitud de red durante el proceso. El código utiliza inteligentemente el método `clone()` para evitar problemas de consumo de recursos.

Leer más

Dominando el elemento HTML `<template>`: Shadow DOM declarativo y trucos con DocumentFragment

2025-09-03

Este artículo profundiza en las poderosas capacidades del elemento HTML ``, centrándose en su uso con el atributo `shadowrootmode` para la creación de Shadow DOM declarativo. Explica detalladamente los valores `open` y `closed` de `shadowrootmode`, y el uso de atributos como `shadowrootclonable`, `shadowrootdelegatesfocus` y `shadowrootserializable`. Además, el artículo ilustra cómo manipular DocumentFragment usando la propiedad `content` del elemento ``, evitando hábilmente posibles problemas con DocumentFragment. A través de ejemplos de código concretos, demuestra cómo insertar y actualizar dinámicamente elementos DOM, y cómo aprovechar Shadow DOM para el encapsulamiento de estilos y el desarrollo basado en componentes.

Leer más
Desarrollo plantilla HTML

Debouncing en Programación: Manejo Eficiente de la Entrada del Usuario

2025-08-07
Debouncing en Programación: Manejo Eficiente de la Entrada del Usuario

En programación, el debouncing es una técnica utilizada para manejar eventos frecuentes, como la entrada continua del usuario. Descarta las operaciones que ocurren demasiado juntas dentro de un intervalo de tiempo específico, consolidándolas en una sola invocación para evitar la lentitud de la IU. Por ejemplo, cuando un usuario escribe una consulta de búsqueda, el debouncing espera una pausa antes de ejecutar la búsqueda, mejorando la eficiencia y la experiencia del usuario. Similar al throttling, pero a diferencia del throttling, que limita la frecuencia de las operaciones continuas, el debouncing espera un período de inactividad antes de actuar.

Leer más
Desarrollo entrada del usuario

Cumpleaños de MDN: Pasteles, colaboración y comunidad

2025-07-25
Cumpleaños de MDN: Pasteles, colaboración y comunidad

En el mundo web, el intercambio de pasteles para marcar hitos importantes es una tradición apreciada entre los fabricantes de navegadores. Microsoft envió pasteles a Mozilla para los lanzamientos de Firefox, y ahora web.dev ha regalado a MDN un pastel de cumpleaños, reconociendo la significativa contribución de MDN a la comunidad global de desarrolladores. Alcanzando millones de desarrolladores mensualmente y contando con más de 100.000 colaboradores, MDN expresa gratitud a su comunidad apasionada, esperando 20 años más de empoderamiento de desarrolladores y construcción de una web mejor juntos.

Leer más
Desarrollo

CSS Paint Worklet: Personaliza tus imágenes de fondo

2025-05-26
CSS Paint Worklet: Personaliza tus imágenes de fondo

Este ejemplo muestra cómo crear imágenes de fondo dinámicas usando CSS Paint Worklet. Definiendo las propiedades personalizadas `--boxColor` y `--widthSubtractor`, y usando el selector CSS `nth-of-type`, generamos imágenes de fondo con colores y anchos variados para los elementos de la lista. El JavaScript registra un script externo de paint worklet, `boxbg.js`, que contiene la lógica para dibujar el fondo. El resultado final es personalizable; ajusta los valores de las propiedades personalizadas en las Herramientas del Desarrollador para cambiar los colores y anchos.

Leer más
Desarrollo Fondo Personalizado

Eliminados los Niveles de Encabezado Implícitos de HTML

2025-04-11
Eliminados los Niveles de Encabezado Implícitos de HTML

La especificación HTML definía anteriormente un algoritmo de esquema que determinaba implícitamente el nivel de encabezado semántico de los elementos

según su anidamiento dentro de elementos de sección (, , , ). Los navegadores representaban section > h1 con el mismo tamaño de fuente y márgenes que

, section > section > h1 como

, y así sucesivamente. Esta representación predeterminada estaba en las hojas de estilo UA del navegador, pero no en el árbol de accesibilidad (usado por los lectores de pantalla). Los sitios web que usaban elementos de sección veían inesperadamente estos niveles de encabezado generados automáticamente. Esto causó confusión sobre el uso de

, manejo inconsistente de herramientas y el algoritmo se consideró problemático. El algoritmo se eliminó en 2022, pero las reglas de las hojas de estilo UA permanecieron. Ahora, los proveedores de navegadores están eliminando esos estilos predeterminados.

Leer más
Desarrollo

Control Global de Privacidad (GPC): ¿Una solución para el rastreo web?

2025-03-16
Control Global de Privacidad (GPC): ¿Una solución para el rastreo web?

A diferencia de su predecesor, No rastrear (DNT), la señal de Control Global de Privacidad (GPC) cuenta con el respaldo del Fiscal General de California y busca alinearse con el GDPR de la UE, empoderando a los usuarios como nunca antes. La ineficacia de DNT se debió a la falta de aplicación legal, pero GPC cambia eso. Transmite las solicitudes de "No vender" de los usuarios a los sitios web, obligándolos al cumplimiento. Con el apoyo de navegadores como Mozilla Firefox, Brave y el navegador de privacidad de DuckDuckGo, GPC señala un posible punto de inflexión en la lucha contra el rastreo web.

Leer más
Tecnología rastreo web

API Temporal: Revolucionando el manejo de fechas y horas en JavaScript

2025-01-30
API Temporal: Revolucionando el manejo de fechas y horas en JavaScript

La API Temporal simplifica la manipulación de fechas y horas en JavaScript. Admite varios sistemas de calendario (como el calendario lunar chino), maneja las conversiones de zona horaria sin problemas y ofrece métodos de comparación intuitivos. Por ejemplo, puede calcular el próximo Año Nuevo Chino o determinar la duración hasta una marca de tiempo Unix futura. Si bien el comportamiento de `toLocaleString` varía ligeramente entre las implementaciones del navegador, la API Temporal ofrece operaciones robustas de fechas y horas, lo que la convierte en una bendición para los desarrolladores.

Leer más
Desarrollo Fecha Hora

Los recursos de aprendizaje de MDN reciben una actualización importante: se lanza una nueva experiencia de aprendizaje

2024-12-25
Los recursos de aprendizaje de MDN reciben una actualización importante: se lanza una nueva experiencia de aprendizaje

En diciembre de 2024, MDN lanzó una actualización importante de su sección "Aprender desarrollo web", fusionando el plan de estudios de MDN con el contenido de aprendizaje existente para crear una ruta de aprendizaje más eficiente. Esta actualización aborda problemas anteriores como el contenido demasiado extenso y las rutas de aprendizaje poco claras, proporcionando una experiencia más clara y accesible para los principiantes. El nuevo sitio utiliza una estructura modular con secciones "Introducción", "Núcleo" y "Extensiones", incorporando objetivos de aprendizaje claros y contenido interactivo. MDN continuará mejorando el contenido y el diseño, con el objetivo de ofrecer recursos de aprendizaje aún mejores en el futuro.

Leer más