Berechnung und Darstellung Renderzeit

Nexlamar

Erfahrenes Mitglied
Hi!

Folgenden Code verwende ich um die Renderzeit einer Website zu berechnen:

PHP:
<?php

function getmicrotime()
{
	list($usec, $sec) = explode(" ", microtime());
	return ((float)$usec + (float)$sec); 
} 

$Anfangszeit = getmicrotime();

//
// Hier der gesamte andere Inhalt der Webseite,
//

$Endzeit = getmicrotime();

echo"Die Erzeugung dieser Webseite hat ",
	number_format($Endzeit-$Anfangszeit, 4, ",", "."),
	" Sekunden gedauert.";

?>

Mein Problem ist jetzt, dass ich die echo-Anweisung mit dem Ergebnis nach dem Aufruf der Seite gerne im Head der Seite darstellen möchte. Jetzt nehme ich damit aber die Ausgabe der Berechnung vorweg, da das Ergebnis natürlich erst am Ende berechnet werden kann. Gibt es eine Möglichkeit die Renderzeit dennoch im Head anzuzeigen, ohne nochmal zu reloaden oder dergleich?

Danke!!

Nexlamar
 
ich denke mit php garnicht zu realisieren ...
Aber du könntest am Ende eine javascript Function aufrufen, oder sogar die zeit mit Javascript berechnen .. Dann haste die Zeit wie lange es gedauert hat bis die Seite vollständig geldaen wurde ...
 
Hm - da es sich nur um ein Goodie handelt, wäre das ne Option (verweigere normalerweise Client-bezogene Geschichten) - bleibt nur die Frage: Wie? ;)
 
@Gumbo: Bin noch ein PHP-Lernender, aber da hatte ich auch schon dran gedacht, vielleicht nicht in einem Cookie, aber eventuell in einer Session-Variable - nur mein Problem ist gerade das "nachträglich ausgeben" - ich müsste es igrendwie schaffen, dass der Serve nach laden der Seite das Ergebnis "nachschickt" ...
 
hier wenn duwillst der javaScript Code:

Code:
<html>
<head><title></title>
</head>
<script language="javascript">
var zeit = new Date();
var ms = zeit.getMilliseconds();
function rend_her()
{
	var nzeit = new Date();
	var render_ms = nzeit.getMilliseconds()-ms;
	var obj;
	obj = document.getElementById('zeiti');
	obj.innerHTML = render_ms; // render_ms*1000 = secundne ;)
}
</script>
<body onload="rend_her();">
<div id="zeiti"></div>
</body>
</html>
 
Danke für das Script!
Habe mich aber doch für die PHP-Variante entschieden - danke, Gumbo, wieder was gelernt!

So gehts:

PHP:
<?php

function getmicrotime()

{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$Anfangszeit = getmicrotime();
?>

// ... blabla content_Begin, unter anderem:

<?php
  ob_start();
  echo "berechne...";
?>

// ... blabla content_End


<?php
  $Endzeit = getmicrotime();
  $rendertime = number_format($Endzeit-$Anfangszeit, 4, ",", ".");
  echo str_replace('berechne...', $rendertime, ob_get_clean());
?>
 
Zurück