Cacheamento Eficiente de Fontes com Service Workers

2025-09-04

Este trecho de código demonstra como um service worker armazena em cache recursos de fonte de forma eficiente. Ele usa `CacheStorage` para armazenar fontes em cache e inclui um mecanismo de versionamento para evitar que caches desatualizados interfiram. Quando uma fonte é solicitada, o service worker verifica primeiro o cache; se houver uma correspondência, ele retorna a fonte diretamente; caso contrário, ele busca a fonte na rede e a adiciona ao cache, tratando erros de solicitação de rede durante o processo. O código usa inteligentemente o método `clone()` para evitar problemas de consumo de recursos.

Leia mais
Desenvolvimento Cacheamento Fontes

Dominando o elemento HTML `<template>`: Shadow DOM declarativo e truques com DocumentFragment

2025-09-03

Este artigo mergulha nas poderosas capacidades do elemento HTML ``, focando em seu uso com o atributo `shadowrootmode` para a criação de Shadow DOM declarativo. Ele explica detalhadamente os valores `open` e `closed` de `shadowrootmode`, e o uso de atributos como `shadowrootclonable`, `shadowrootdelegatesfocus` e `shadowrootserializable`. Além disso, o artigo ilustra como manipular DocumentFragment usando a propriedade `content` do elemento ``, evitando habilmente potenciais armadilhas do DocumentFragment. Através de exemplos de código concretos, ele demonstra como inserir e atualizar dinamicamente elementos DOM, e como alavancar Shadow DOM para encapsulamento de estilos e desenvolvimento baseado em componentes.

Leia mais
Desenvolvimento modelo HTML

Debouncing em Programação: Lidando Eficientemente com a Entrada do Usuário

2025-08-07
Debouncing em Programação: Lidando Eficientemente com a Entrada do Usuário

Em programação, debouncing é uma técnica usada para lidar com eventos frequentes, como entrada contínua do usuário. Ele descarta operações que ocorrem muito próximas umas das outras em um intervalo de tempo especificado, consolidando-as em uma única invocação para evitar lentidão na IU. Por exemplo, quando um usuário digita uma consulta de pesquisa, o debouncing espera por uma pausa antes de executar a pesquisa, melhorando a eficiência e a experiência do usuário. Semelhante ao throttling, mas ao contrário do throttling, que limita a frequência de operações contínuas, o debouncing espera por um período de inatividade antes de agir.

Leia mais

Aniversário do MDN: Bolos, Colaboração e Comunidade

2025-07-25
Aniversário do MDN: Bolos, Colaboração e Comunidade

No mundo da web, a troca de bolos para marcar marcos importantes é uma tradição apreciada entre os fabricantes de navegadores. A Microsoft enviou bolos para a Mozilla para lançamentos do Firefox, e agora o web.dev presenteou o MDN com um bolo de aniversário, reconhecendo a significativa contribuição do MDN para a comunidade global de desenvolvedores. Alcançando milhões de desenvolvedores mensalmente e contando com mais de 100.000 colaboradores, o MDN expressa gratidão à sua comunidade apaixonada, esperando por mais 20 anos de empoderamento de desenvolvedores e construção de uma web melhor juntos.

Leia mais
Desenvolvimento

CSS Paint Worklet: Personalizando Imagens de Fundo

2025-05-26
CSS Paint Worklet: Personalizando Imagens de Fundo

Este exemplo mostra como criar imagens de fundo dinâmicas usando CSS Paint Worklet. Definindo as propriedades personalizadas `--boxColor` e `--widthSubtractor`, e usando o seletor CSS `nth-of-type`, geramos imagens de fundo com cores e larguras variadas para os itens da lista. O JavaScript registra um script externo de paint worklet, `boxbg.js`, que contém a lógica para desenhar o fundo. O resultado final é personalizável; ajuste os valores das propriedades personalizadas nas Ferramentas do Desenvolvedor para alterar as cores e larguras.

Leia mais
Desenvolvimento Fundo Personalizado

Níveis de Título Implícitos do HTML Removidos

2025-04-11
Níveis de Título Implícitos do HTML Removidos

A especificação HTML definia anteriormente um algoritmo de contorno que determinava implicitamente o nível de título semântico dos elementos

com base na aninhação dentro de elementos de seção (, , , ). Os navegadores renderizavam section > h1 com o mesmo tamanho de fonte e margens que

, section > section > h1 como

, e assim por diante. Essa renderização padrão estava nas folhas de estilo UA do navegador, mas não na árvore de acessibilidade (usada por leitores de tela). Sites que usavam elementos de seção inesperadamente viam esses níveis de título gerados automaticamente. Isso causou confusão sobre o uso de

, manipulação inconsistente de ferramentas e o algoritmo foi considerado problemático. O algoritmo foi removido em 2022, mas as regras da folha de estilo UA permaneceram. Agora, os fornecedores de navegadores estão removendo esses estilos padrão.

Leia mais
Desenvolvimento

Controle Global de Privacidade (GPC): Uma solução para o rastreamento na web?

2025-03-16
Controle Global de Privacidade (GPC): Uma solução para o rastreamento na web?

Diferentemente do seu antecessor, Não rastrear (DNT), o sinal de Controle Global de Privacidade (GPC) conta com o apoio do Procurador-Geral da Califórnia e visa o alinhamento com o GDPR da UE, dando aos usuários um poder sem precedentes. A ineficácia do DNT derivou da falta de aplicação legal, mas o GPC muda isso. Ele transmite as solicitações de "Não vender" dos usuários para os sites, obrigando-os à conformidade. Com o apoio de navegadores como Mozilla Firefox, Brave e o navegador de privacidade do DuckDuckGo, o GPC sinaliza um possível ponto de virada na luta contra o rastreamento na web.

Leia mais
Tecnologia rastreamento na web

API Temporal: Revolucionando o tratamento de datas e horas em JavaScript

2025-01-30
API Temporal: Revolucionando o tratamento de datas e horas em JavaScript

A API Temporal simplifica a manipulação de datas e horas em JavaScript. Ela suporta vários sistemas de calendário (como o calendário lunar chinês), lida com conversões de fuso horário sem problemas e oferece métodos de comparação intuitivos. Por exemplo, ela pode calcular o próximo Ano Novo Chinês ou determinar a duração até um timestamp Unix futuro. Embora o comportamento do `toLocaleString` varie ligeiramente entre as implementações do navegador, a API Temporal oferece operações robustas de datas e horas, tornando-se uma benção para os desenvolvedores.

Leia mais
Desenvolvimento API Temporal Data Hora

Recursos de Aprendizagem do MDN Recebem Atualização Principal: Nova Experiência de Aprendizagem Lançada

2024-12-25
Recursos de Aprendizagem do MDN Recebem Atualização Principal: Nova Experiência de Aprendizagem Lançada

Em dezembro de 2024, o MDN lançou uma atualização principal em sua seção "Aprenda Desenvolvimento Web", mesclando o Currículo MDN com o conteúdo de aprendizado existente para criar um caminho de aprendizado mais simplificado. Esta atualização visa resolver problemas anteriores, como conteúdo inchado e caminhos de aprendizado pouco claros, fornecendo uma experiência mais clara e acessível para iniciantes. O novo site usa uma estrutura modular com seções "Introdução", "Essencial" e "Extensões", incorporando objetivos de aprendizado claros e conteúdo interativo. O MDN continuará aprimorando o conteúdo e o design, com o objetivo de fornecer recursos de aprendizado ainda melhores no futuro.

Leia mais