Frage

Ich mag die Ladezeit berechnen; Das bedeutet, von der zweiten 0 (ein wenig jquery Snippet geladen wurde) auf den zweiten x, wenn die ganze Seite geladen wird.

Ich frage mich, wenn jemand eine Erfahrung damit hatte, auch Ideen, wie es zu implementieren richtig apperciated wird.

bitte ich keine Erweiterung benötigen, i bereits firebug haben, ich brauche eine js Lösung

Dank:)

War es hilfreich?

Lösung

Wie andere erwähnt haben, das wird sich nicht sehr genau zu sein. Dies sollte aber vernünftig arbeiten.

In Ihrem <head>, das heißt, so früh wie möglich:

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

Der Schlüssel ist dieses Verhalten, von der jQuery docs :

  

Wenn auf das Fensterelement gebunden ist, die   Ereignis wird ausgelöst, wenn der User-Agent   beendet alle Inhalte innerhalb einer Lade   Dokument, einschließlich Fenster, Rahmen,   Objekte und Bilder.

Andere Tipps

Da Skripte ausführen, sobald sie analysiert werden, schlage ich vor, dass Sie ein Skript-Tag setzen gerade innerhalb der Header, dann das Skript die Seite Load-Ereignis einzuhaken, nachdem Sie jQuery haben geladen:

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

Auf diese Weise sollten Sie so viel von der Seitenladezeit wie möglich fangen können.

könnten Sie besser dran sein, eine Browser-Plugin? Rechnen mit JavaScript wird notwendig underestimate Ladezeit, da es nicht die Zeit umfasst den jQuery-Schnipsel, und umfasst nicht die Zeit zwischen dem Browser sendet die Anfrage und den Web-Server reagiert?

laden

Es gibt eine Plugin Time Analyzer Laden für Firefox.

Wenn Sie dies zum Zwecke der Optimierung tun, dann schlage ich Sie mit YSlow . Es ist eine Firebug-Erweiterung für Firefox. Es können Sie die Seitenladezeit und viele andere nützliche Informationen anzeigen.

Lesen Sie die W3C-Empfehlung für Navigation Timing

Bemerkenswerte:

  

Zum Beispiel das folgende Skript zeigt einen naiven Versuch, das zu messen   Zeit es braucht, vollständig eine Seite zu laden:

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

Das Skript berechnet die Zeit es braucht, um die Seite nach dem Laden   erstes Bit JavaScript in dem Kopf ausgeführt wird, aber es gibt nicht   keine Informationen über die Zeit es braucht, um die Seite aus dem erhalten   Server.

     

die Notwendigkeit für vollständige Informationen über die User Experience zu adressieren, diese   Dokument stellt die PerformanceTiming Schnittstellen. diese Schnittstelle   JavaScript Mechanismen ermöglichen die vollständige clientseitige Latenz zur Verfügung zu stellen   Messungen innerhalb von Anwendungen. Mit der vorgeschlagenen Schnittstelle, die   obige Beispiel kann ein Benutzer wahrgenommen Seite zu messen modifiziert werden   Ladezeit.

     

Das folgende Skript berechnet, wie viel Zeit, um eine Seite, da die laden   jüngste Navigation.

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

Sie können nicht wirklich tun dies mit jQuery seit $(document).ready(); ausgelöst wird, wenn die Seite geladen wird.

Sie können dies tun, mit dem YSlow Firebug Plug-in für Firfox. Wenn Sie dies auf allen Browsern arbeiten möchten, müssen Sie serverseitige Code zu erhalten hinzuzufügen, wie lange es dauerte, wenn das erste Element auf dem Bodenelement geschrieben wird.

Wenn das nicht das, was Sie möchten, dass Sie ein Tool wie Selen verwenden können und schreiben einen Test der erfassen Zeit von open von waitForPageToLoad zu beenden. Selen funktioniert auf allen Browsern

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top