- O suporte a
ResizeObservers
notifica você quando o retângulo de conteúdo de um elemento muda de tamanho. - Os módulos agora podem acessar metadados específicos do host com import.meta.
- O bloqueador de pop-ups fica mais forte.
window.alert()
não muda mais o foco.
E tem muitos outros!
Meu nome é Pete LePage. Vamos conhecer as novidades para os desenvolvedores no Chrome 64!
Quer a lista completa de alterações? Confira a lista de alterações do repositório de origem do Chromium.
ResizeObserver
Rastrear quando o tamanho de um elemento muda pode ser um pouco trabalhoso. É provável que você anexe um listener ao evento resize
do documento e depois chamará getBoundingClientRect
ou getComputedStyle
. Porém, ambos podem causar
sobrecarga do layout.
E se o tamanho da janela do navegador não mudasse, mas um novo elemento fosse adicionado
ao documento? Ou você adicionou display: none
a um elemento? Ambas
podem mudar o tamanho de outros elementos da página.
ResizeObserver
notifica você sempre que o tamanho de um elemento muda e
fornece a nova altura e largura do elemento, reduzindo o risco de
sobrecarga do layout.
Como outros Observadores, usá-lo é muito simples, crie um objeto ResizeObserver
e transmita um callback para o construtor. O callback receberá uma matriz de ResizeOberverEntries
, uma entrada por elemento observado, que contém as novas dimensões do elemento.
const ro = new ResizeObserver( entries => {
for (const entry of entries) {
const cr = entry.contentRect;
console.log('Element:', entry.target);
console.log(`Element size: ${cr.width}px × ${cr.height}px`);
console.log(`Element padding: ${cr.top}px ; ${cr.left}px`);
}
});
// Observe one or multiple elements
ro.observe(someElement);
Confira ResizeObserver
: é como a document.onresize
para elementos
para mais detalhes e exemplos do mundo real.
Bloqueador de pop-ups aprimorado
Eu odeio tab-unders. Você sabe que é quando uma página abre um pop-up em algum destino E navega pela página. Normalmente, um deles é um anúncio ou algo que você não queria.
A partir do Chrome 64, esse tipo de navegação será bloqueada, e o Chrome mostrará IU nativa ao usuário, permitindo que ele siga o redirecionamento, se quiser.
import.meta
Ao escrever módulos JavaScript, normalmente você quer acessar os metadados específicos do host sobre o módulo atual. O Chrome 64 agora oferece suporte à propriedade import.meta
nos módulos e expõe o URL do módulo como
import.meta.url
.
Isso é muito útil quando você quer resolver recursos relativos ao arquivo do módulo, e não ao documento HTML atual.
E muito mais.
Essas são apenas algumas das mudanças no Chrome 64 para desenvolvedores. É claro, há muito mais.
- O Chrome agora oferece suporte a capturas nomeadas e escapes de propriedade Unicode em expressões regulares.
- O valor padrão de
preload
para elementos<audio>
e<video>
agora émetadata
. Isso alinha o Chrome a outros navegadores e ajuda a reduzir o uso da largura de banda e dos recursos carregando apenas os metadados, e não a mídia em si. - Agora você pode usar
Request.prototype.cache
para ver o modo de cache de umRequest
e determinar se uma solicitação é de atualização - Com a API Focus Management, agora você pode focar um elemento sem
rolar até ele com o atributo
preventScroll
window.alert()
Ah, e mais uma! Embora não seja realmente um "recurso para desenvolvedores", isso me deixa feliz. window.alert()
não coloca mais uma guia em segundo plano em
primeiro plano. Em vez disso, o alerta será mostrado quando o usuário voltar
para essa guia.
Chega de alternar guias aleatórias porque algo acionou uma window.alert
em mim.
estou olhando para você, o antigo Google Agenda.
Inscreva-se no nosso canal do YouTube para receber uma notificação por e-mail sempre que lançarmos um novo vídeo.
Sou Pete LePage e, assim que o Chrome 65 for lançado, estarei aqui para informar as novidades do Chrome!