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 "

  1. Existe uma abordagem melhor?
  2. Que tipo de penalidade de desempenho que eu deveria estar esperando (ordem de grandeza)?
  3. Como bom são os resultados?
Foi útil?

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) ?

Uma alternativa para Jiffy é Episodes .

Ambos envolvem instrumentar seu Javascript para manter o controle de vários horários, e registrando esses horários em um servidor central.

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:

http://getfirebug.com/

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. :)

http://research.microsoft.com/en-us /groups/rad/sosp07.pdf

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top