APIs de desempenho na Web se tornam rapidamente recomendações do W3C

IEBlog Português

Blog da equipe de engenharia do Windows Internet Explorer

APIs de desempenho na Web se tornam rapidamente recomendações do W3C

  • Comments 0

O Grupo de Trabalho de Performance na Web do W3C publicou recentemente três especificações como recomendações do W3C com implementações completas de todos os principais fornecedores de navegador, aumentando a capacidade dos desenvolvedores para medir com precisão o desempenho de aplicativos Web e tornar a Web mais rápida. Nos últimos três anos, empresas como a Microsoft, Google, Mozilla, Intel, Facebook e outras trabalham na padronização das interfaces de Navigation Timing, High Resolution Time e Page Visibility no Grupo de Trabalho. A rápida adoção dessas recomendações demonstra o que é possível quando o setor e a comunidade se juntam por meio do W3C.

Para tornar a Web mais rápida, os desenvolvedores precisam medir de forma precisa as características de desempenho de aplicativos Web e usar efetivamente o hardware subjacente para melhorar o desempenho de seus aplicativos. Para resolver esses problemas, o Grupo de Trabalho de Desempenho na Web criou 15 especificações diferentes que solucionam esses problemas. A tabela abaixo mostra o nível de maturidade de todas as especificações que estão sendo editadas atualmente pelo Grupo de Trabalho.

EspecificaçãoRascunho do editorPrimeiro rascunho de trabalho públicoÚltima videochamadaRecomen. candidataRecomen. propostaRecomen.
Tempo de navegaçãoSet 2010Out 2010Jan 2011Mar 2011Jul 2012Dez 2012
Tempo de recursoSet 2010Mai 2011Ago 2011Mai 2012
Tempo do usuárioOut 2010Ago 2011Set 2011Jul 2012
Linha do tempo do desempenhoJul 2011Ago 2011Set 2011Jul 2012
Tempo de alta resoluçãoFev 2012Mar 2012Mar 2012Mai 2012Out 2012Dez 2012
Visibilidade da páginaAbr 2011Jun 2011Jul 2011Jul 2012Fev 2013Mai 2013
Exibir notificação de pinturaMai 2011Jun 2011Fev 2012
Tempo de navegação L2 (NOVO)Jan 2013Jan 2013
Concess��o de script eficienteJun 2011
Tempo de alta resolução L2 (NOVO)Abr 2013
Beacon (NOVO)Mar 2013
Prioridades de recursos (NOVO)Abr 2013
Log de erro de navegação (NOVO)Abr 2013
Log de erro de recursos (NOVO)Abr 2013
Prerender (NOVO)

As especificações de Navigation Timing, Resource Timing, User Timing e Performance Timeline ajudam os desenvolvedores a medir com precisão o tempo de navegação do documento, a busca de recursos na página e a execução do script do desenvolvedor. Antes dessas APIs, esses dados não eram obtidos facilmente. O Tempo de navegação era publicado como uma recomendação do W3C, com suporte de todos os principais fornecedores de navegador. As outras três interfaces estão atualmente no estágio de Recomendação candidata aguardando duas implementações completas dos fornecedores de navegador. No momento, o IE10 é o único navegador que implementou todas essas interfaces, embora outros fornecedores estejam trabalhando nisso.

Para garantir que essas métricas de desempenho sejam medidas da forma mais precisa possível, a especificação de High Resolution Time permite que os desenvolvedores meçam operações com uma precisão de submilissegundos. Essa interface beneficia as medições precisas de métricas de desempenho e também permite um cálculo da taxa de quadros e uma sincronização de indicações de áudio e animação melhores. Essa interface foi publicada como uma recomendação do W3C, com todos os principais fornecedores de navegador implementando o método performance.now() definido na especificação.

A API de Page Visibility permite a determinação programática do estado de visibilidade atual da página. Os desenvolvedores podem usar esses dados para tomar decisões de CPU e de economia de energia melhores, por exemplo, diminuindo a atividade quando a página estiver na guia em segundo plano. Essa especificação também foi publicada como uma recomendação do W3C, com implementação de todos os principais fornecedores de navegador.

As especificações de Timing Control for Script-Based Animations e Efficient Script Yielding ajudam os desenvolvedores a escreverem mais aplicativos Web com CPU mais eficiente e menor consumo de energia. A API requestAnimationFrame, da especificação de Controle de tempo para animações baseadas em script, permite a criação de animações JavaScript mais eficientes. Todos os fornecedores de navegador têm suporte completo para essa interface, com o Grupo de Trabalho publicando ativamente essa especificação como uma Recomendação candidata. A API setImmediate, da especificação Concessão eficiente de script, permite que os desenvolvedores ofereçam um controle de fluxo eficiente para o agente de usuário e receba um retorno de chamada imediato, aproveitando CPU com eficiência. O IE10 é o primeiro navegador a implementar essa interface.

Este ano, o Grupo de Trabalho também começou a buscar novas ideias, com os rascunhos do editor dessas ideias atualmente sendo discutidos no Grupo de Trabalho. A API de Beacon tem como objetivo ajudar os scripts a transferirem assincronicamente os dados para um servidor Web sem bloquear o evento Descarregar, o que pode impactar de forma negativa o desempenho percebido da navegação seguinte. A API de Resource Priorities define um meio para que os desenvolvedores Web deem dicas ao navegador sobre a prioridade de download de recursos para ajudar a melhorar o tempo de carregamento da página. Como corolário das especificações de Tempo, as especificações de Navigation Error Logging e Resource Error Logging ajudam os desenvolvedores a conhecerem os erros e a disponibilidade dos aplicativos. A especificação de Navigation Timing Level L2 adiciona o suporte do Tempo de alta resolução e Tempo do desempenho ao Tempo de navegação, e a especificação de High Resolution Time L2 adiciona o suporte do Web Worker. Esses são apenas alguns dos rascunhos que o Grupo de Trabalho está definindo no momento, com mais rascunhos de especificação sobre o Prerender e outras áreas de diagnóstico disponíveis em breve.

O Grupo de Trabalho de Desempenho na Web do W3C é um ótimo exemplo de quão rapidamente novas ideias podem se tornar padrões interoperáveis em que os desenvolvedores podem se basear em navegadores modernos com HTML5 habilitado. Junto com os líderes do setor e da comunidade que participam do Grupo de Trabalho, esperamos continuar fazendo rápidos avanços nos padrões interoperáveis que ajudarão os desenvolvedores a tornar a Web mais rápida.

Obrigado,
Jatinder Mann
gerente de programas do Internet Explorer

  • Loading...