Pergunta

Eu quero calcular o tempo de carregamento da página; Este meio de segunda 0 (trecho um pouco jQuery foi carregado) para o segundo x, quando toda a página é carregada.

Eu me pergunto se alguém teve uma experiência com ele, também idéias como implementá-lo corretamente será apperciated.

por favor, eu não preciso de uma extensão, eu já tenho firebug, eu preciso de uma solução js

graças:)

Foi útil?

Solução

Como já foi mencionado, isso não vai ser muito preciso. Mas isso deve funcionar razoavelmente.

Em seu <head>, ou seja, o mais cedo possível:

<script>
   var startTime = (new Date()).getTime();
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
   $(window).load(function () {
       var endTime = (new Date()).getTime();
       var millisecondsLoading = endTime - startTime;
       // Put millisecondsLoading in a hidden form field
       // or Ajax it back to the server or whatever.
   });
</script>

A chave é esse comportamento, dos docs jQuery :

Quando ligado ao elemento janela, o evento é acionado quando o usuário agente terminar o carregamento de todo o conteúdo dentro de um documento, incluindo janela, quadros, objetos e imagens.

Outras dicas

Uma vez que os scripts são executados assim que eles são analisados, eu sugiro que você coloque uma marca de script apenas dentro do cabeçalho, em seguida, o script para ligar o evento de carregamento da página depois de você ter carregado jQuery:

<html>
<head>
   <script>
      // Capture start time
   </script>
   ...
   <script src="jquery.js" />
   <script>
      $(window).load(function() {
         // Capture end time
      });
   </script>
...

Dessa forma, você deve ser capaz de capturar o máximo de tempo de carregamento da página quanto possível.

Você pode ser melhor fora de usar um plugin para o navegador? Calculando com JavaScript será necessário tempo de carregamento da página subestimado, uma vez que não irá incluir o tempo para carregar o jQuery trecho, e não inclui o tempo entre o navegador enviar o pedido e o servidor de responder?

Há um carga horária Analyzer plugin para o Firefox.

Se você está fazendo isso com a finalidade de otimização, então sugiro que você usar Yslow . É uma extensão Firebug-Firefox. Pode mostrar-lhe o tempo de carregamento da página e um monte de outras informações úteis.

Leia a W3C recomendação para sincronismo Navigation

Notable:

Por exemplo, as seguintes mostras de script uma tentativa ingênua para medir a tempo que leva para carregar totalmente uma página:

<html>
<head>
<script type="text/javascript">

var start = new Date().getTime();
function onLoad() {
  var now = new Date().getTime();
  var latency = now - start;
  alert("page loading time: " + latency);
}

</script>
</head>
<body onload="onLoad()">
<!- Main page body goes from here. -->
</body>
</html>

O script calcula o tempo que leva para carregar a página após a primeiro pedaço de JavaScript na cabeça é executado, mas não dá qualquer informação sobre o tempo que leva para obter a página do servidor.

Para atender à necessidade de informações completas sobre a experiência do usuário, este documento apresenta as interfaces PerformanceTiming. esta interface permite mecanismos JavaScript para fornecer latência do lado do cliente completa as medições dentro de aplicações. Com a interface proposta, o exemplo anterior pode ser modificado para medir página percebida de um usuário carga tempo.

O script a seguir calcula quanto tempo para carregar uma página desde o mais de navegação recente.

<html>
<head>
<script type="text/javascript">
function onLoad() {
  var now = new Date().getTime();
  var page_load_time = now - performance.timing.navigationStart;
  alert("User-perceived page loading time: " + page_load_time);
}

</script>
</head>
<body onload="onLoad()">
<!- Main page body goes from here. -->
</body>
</html>

Você não pode realmente fazer isso com jQuery desde incêndios $(document).ready(); quando a página foi carregada.

Você pode fazer isso com a YSlow Firebug plug-in para Firfox. Se você quer este trabalho em todos os navegadores que você precisará adicionar código serverside para mostrar quanto tempo que levou quando o primeiro elemento é escrito para o elemento de fundo.

Se não é isso que você gostaria que você pode usar uma ferramenta como selênio e escrever um teste para capturar o tempo de open ao fim de waitForPageToLoad. obras de selênio em todos os navegadores

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