Qual é a melhor maneira de medir o Cliente colaterais tempos de carregamento da página?
-
23-08-2019 - |
Pergunta
Eu estou olhando para monitorar a experiência do usuário final do nosso site e link que com a informação tempo já registrado no lado do servidor. Minha suposição é que isso vai exigir javascript para a carimbos de tempo de captura no início do pedido (window.onbeforeunload) e no final do carregamento (window.onload). Basicamente isso - " tempo de resposta de aplicações Web de medição : Conheça o cliente "
- Existe uma abordagem melhor?
- Que tipo de penalidade de desempenho que eu deveria estar esperando (ordem de grandeza)?
- Como bom são os resultados?
Solução
EDIT (2013): tente Boomerang em vez disso, como @ yasei-no-umi sugere. É mantido ativamente.
- velha resposta -
Jiffy .
É muito simples de usar e modificar -. Nós escrevemos nosso próprio código do lado do servidor (em vez de Apache do Jiffy + perl) e usado JS do Jiffy
Com relação a penalidade de desempenho - não há um no lado do cliente. A JS si é trivialmente rápido, ea parte traseira de relatórios para o servidor pode ser feito com um XHR após o carregamento da página, o que afeta nada na experiência do usuário. No lado do servidor você vai ter o dobro de pedidos. Se isso é um gargalo, você poderia configurar um servidor diferente apenas para as respostas de tempo.
Outras dicas
Há também Boomerang é do Yahoo.
Tem alguns recursos avançados não existentes em Jiffy e episódios. Também apoio Navigation sincronismo API em browsers que a suportam (Chrome 6, IE 9)
Para ser completo, agora você pode usar o tempo API de navegação em algumas das modernos navegadores: https://developer.mozilla.org/en-US/docs/Navigation_timing
function onLoad() {
var now = new Date().getTime();
var page_load_time = now - performance.timing.navigationStart;
console.log("User-perceived page loading time: " + page_load_time);
}
3rd party edit
Com base caniuse.com navegação momento é amplamente apoiada hoje (10/2016)
O que sobre a utilização de algo como YSlow (uma extensão do Firefox) ?
Temos um (imagem GIF transparente de 1x1 com um parâmetro que representa o ID da página rendem) "chamada de volta" na página que registra uma "página visualizada" para o nosso banco de dados. Isso é registros com o mesmo ID que a página em si é gravado, e nós temos uma entrada de log quando nossos acabamentos de renderização.
Portanto, temos tempo de:
- preparação Página começou
- preparação Página / resposta terminou
- Cliente telefonou para casa quando o processamento concluído
Ajuda com clientes entendimento de que são "lento" (CPU ou ISP / largura de banda)
P.S. Página processa que não chamar de lar são de interesse também - o usuário clicou-off (assumindo que outra página processa nessa sessão fez gravar um Home Phone)
Estou bastante duvidosa destes métodos. Alguns desses métodos são mais complexos do que o necessário e eu questionar a precisão dos dados. O que eu fazer é ter testadores de ir para várias redes e usar algo como o Firebug ou algo assim:
Para os pedaços dele; aqui está um artigo interessante recentemente submetido a SOSP em uma ferramenta chamada AjaxScope. Curiosamente, é um artigo acadêmico, apresentado pelo MS Research, que a implementação Javascript mostras do Firefox realizar muitas vezes melhor do que o Internet Explorer em alguns casos. :)
Temos a tendência de usar uma combinação de:
O Firefox: desenvolvedor Web Toolbar Firebug YSlow
IE: Fiddler
fora de tudo isso, eu encontrei YSlow dá a melhor informação sobre o que você pode fazer para melhorar seus tempos de carregamento, mas Fiddler dá a melhor informação geral sobre o que você pode esperar ao longo do fio, e pode até mesmo simular diferentes velocidades de rede.