Was ist der Unterschied zwischen ob_start()
und ob_start('ob_gzhandler')
?
Wie wirkt sich dies auf die Seitengeschwindigkeit aus?PHP ob_start() und ob_start ('ob_gzhandler')
Antwort
Dies wirkt sich nicht auf die Seitengeschwindigkeit in dem Sinne aus, wie Sie vielleicht denken.
Die ist eine Callback-Funktion, die den Inhalt aus Ihrem Ausgabepuffer übernimmt und die Daten vor der Ausgabe komprimiert.
Dies reduziert die Größe des Inhalts, der an den Browser gesendet wird, was die Übertragung des Inhalts an den Client beschleunigen könnte. Es beschleunigt jedoch nicht Ihre Bewerbung/Website.
Ich musste gzip für einige Admin-Seiten (voll von komplizierten HTML-Tabellen) zwingen, die für einige Clients nicht automatisch komprimiert wurden, also habe ich diese Methode hinzugefügt. Ich bin mir nicht sicher, ob ich es für jede Seite erzwingen würde, aber zumindest die Admin-Seiten sind in Ordnung.
function force_gzip()
{
// Ensures only forced if the Accept-Encoding header contains "gzip"
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
{
header('Content-Encoding: gzip');
ob_start('ob_gzhandler');
}
}
950KB von HTML wurde um 80KB in einer 5-10x Geschwindigkeit resultierende Erhöhung Laden der Seite zusammengepresst.
Wenn eine Seite ob_start ('ob_gzhandler') verwendet, was die Übertragung von Inhalten auf den Client beschleunigt, denke ich, dass diese Pufferung auch das Seitenrendering beschleunigen kann. – Sithu
Diese beiden Dinge sind nicht miteinander verwandt. Das Rendern von Seiten hängt von der Hardware des Clients ab. Es spielt keine Rolle, ob ich den Inhalt in 1 Sekunde haben kann, wenn das Rendern des Inhalts 3 Sekunden dauert. Sie müssen den Inhalt noch abrufen, bevor Sie etwas rendern können. – Repox