O Chrome 77 está sendo lançado agora!
- Há uma maneira melhor de acompanhar o desempenho do seu site com a Largest Contentful Paint.
- Os formulários têm novos recursos.
- O carregamento lento nativo está aqui.
- O Chrome DevSummit 2019 será realizado de 11 a 12 de novembro de 2019.
- E muito mais.
Meu nome é Pete LePage. Vamos conferir as novidades para desenvolvedores no Chrome 77.
Maior exibição de conteúdo
Entender e medir o desempenho real do seu site pode ser difícil.
Métricas como load
ou DOMContentLoaded
não informam o que o usuário está
vendo na tela. First Paint e First Contentful Paint capturam apenas o
início da experiência. A First Meaningful Paint é melhor, mas é
complexa e às vezes errada.
A API Largest Contentful Paint, disponível a partir do Chrome 77, informa o tempo de renderização do maior elemento de conteúdo visível na janela de visualização e permite medir quando o conteúdo principal da página é carregado.
Para medir a Largest Contentful Paint, você precisa usar um Observador de
desempenho e procurar eventos largest-contentful-paint
.
let lcp;
const po = new PerformanceObserver((eList) => {
const e = eList.getEntries();
const last = e[e.length - 1];
lcp = last.renderTime || last.loadTime;
});
const poOpts = {
type: 'largest-contentful-paint',
buffered: true
}
po.observe(poOpts);
Como uma página geralmente é carregada em etapas, é possível que o elemento mais
grande em uma página mude. Portanto, informe apenas o último
evento largest-contentful-paint
ao serviço de análise.
addEventListener('visibilitychange', function fn() {
const visState = document.visibilityState;
if (lcp && visState === 'hidden') {
sendToAnalytics({'lcp': lcp});
removeEventListener('visibilitychange', fn, true);
}
}, true);
Phil tem um ótimo post sobre a maior exibição de conteúdo no web.dev.
Novos recursos de formulários
Muitos desenvolvedores criam controles de formulário personalizados para personalizar a aparência
e a sensação de elementos existentes ou para criar novos controles que não são integrados
ao navegador. Isso geralmente envolve o uso de JavaScript e elementos <input>
ocultos, mas não é uma solução perfeita.
Dois novos recursos da Web, adicionados no Chrome 77, facilitam a criação de controles de formulário personalizados e removem muitas das limitações atuais.
O evento formdata
O evento formdata
é uma API de baixo nível que permite que qualquer código JavaScript
participe de um envio de formulário. Para usá-lo, adicione um listener de eventos formdata
ao formulário com que você quer interagir.
const form = document.querySelector('form');
form.addEventListener('formdata', ({formData}) => {
formData.append('my-input', myInputValue);
});
Quando o usuário clica no botão "Enviar", o formulário dispara o evento formdata
, que inclui um objeto FormData
com todos os dados que estão sendo enviados.
Em seguida, no manipulador de eventos formdata
, é possível atualizar ou modificar o formdata
antes do envio.
Elementos personalizados associados a formulários
Os elementos personalizados associados a formulários ajudam a preencher a lacuna entre os elementos personalizados
e os controles nativos. Adicionar uma propriedade estática formAssociated
instrui o navegador a tratar o elemento personalizado como todos os outros elementos de formulário. Você também precisa adicionar
propriedades comuns encontradas em elementos de entrada, como name
, value
e validity
, para garantir a consistência com os controles nativos.
class MyCounter extends HTMLElement {
static formAssociated = true;
constructor() {
super();
this._internals = this.attachInternals();
this._value = 0;
}
...
}
Confira Mais controles de formulário avançados no web.dev para saber todos os detalhes.
Carregamento lento nativo
Não sei como deixei de falar sobre o carregamento lento nativo no meu último vídeo. Ela é muito
incrível, então vou incluí-la agora. O carregamento lento é uma técnica que permite
adiar o carregamento de recursos não críticos, como <img>
s fora da tela
ou <iframe>
s, até que eles sejam necessários, aumentando o desempenho da página.
A partir do Chrome 76, o navegador processa o carregamento lento para você, sem a necessidade de escrever um código personalizado ou usar uma biblioteca JavaScript separada.
Para informar ao navegador que você quer uma imagem ou um iframe carregado com lazy loading, use o
atributo loading="lazy"
. Imagens e iframes "acima da dobra" são carregados normalmente. E os que estão abaixo deles só são buscados quando o usuário
rola a tela perto deles.
<img src="image.jpg" loading="lazy" width="400" height="250" alt="...">
Confira detalhes em Carregamento lento no nível do navegador para a Web no web.dev.
Chrome Dev Summit 2019
O Chrome Dev Summit vai acontecer nos dias 11 e 12 de novembro.
É uma ótima oportunidade de aprender sobre as ferramentas e atualizações mais recentes que estão chegando à plataforma da Web e ouvir diretamente da equipe de engenharia do Chrome.
O evento será transmitido ao vivo no nosso canal do YouTube. Se você quiser participar pessoalmente, solicite seu convite no site do Chrome Dev Summit 2019.
E muito mais.
Estas são apenas algumas das mudanças no Chrome 77 para desenvolvedores. Há muitas outras.
A API Contact Picker, disponível como um teste de origem, é um novo seletor sob demanda que permite aos usuários selecionar uma entrada ou entradas da lista de contatos e compartilhar detalhes limitados sobre os contatos selecionados com um site.
Há novas unidades de medida na API intl.NumberFormat
.
Leitura adicional
Isso abrange apenas alguns dos principais destaques. Confira as mudanças adicionais no Chrome 77 nos links abaixo.
- Novidades do Chrome DevTools (77)
- Descontinuação e remoções do Chrome 77
- Atualizações do ChromeStatus.com para o Chrome 77
- Novidades do JavaScript no Chrome 77
- Lista de mudanças no repositório de origem do Chromium
Inscrever-se
Se quiser ficar por dentro dos nossos vídeos, inscreva-se no canal do YouTube para desenvolvedores do Chrome e receba uma notificação por e-mail sempre que lançarmos um novo vídeo.
Meu nome é Pete LePage, e assim que o Chrome 78 for lançado, estarei aqui para contar as novidades do Chrome!