J’utilise depuis quelques temps ce petit bout de code pour compresser à la volée les données qui sont envoyées sur mes sites. ( En gros, le HTML / xHTML que vous recevez ) :

<?php ob_start("ob_gzhandler"); ?>

Ce dernier doit être inséré avant tout envoi de code html / données quelconques.

Malheureusement, j’avais pris la mauvaise habitude de l’insérer au tout début de mon code source, à la suite de la balise ouvrante  » <?php « , afin de ne pas l’oublier, au même titre qu’un sempiternel  » session_start(); « . Le temps de génération d’une page / envoi au client sur MinURL prenait alors en moyenne 200 ms ( sur mon couple connexion / navigateur ).

Par curiosité, j’ai décidé de le descendre juste avant l’envoi du doctype html, donc après l’exécution de la majorité de mon code, pour atteindre quelque chose de ce style :

ob_start("ob_gzhandler");
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

Résultat des courses, le temps de génération de la page est descendu à 100ms ( toujours sur mon couple connexion / navigateur ).

Pourquoi donc ? Parce que cette fonction n’a pas eu à guetter les éventuelles données à compresser dans l’exécution du code ( qui rappelons-le, devrait être séparée de la partie « affichage » ). Si un développeur chevronné passe par ici et qu’il veut donner plus de détails, je les lirais avec plaisir 🙂

Ne faites donc pas la même erreur – de débutant – que moi 😉

Tags : , ,