JeuWeb - Crée ton jeu par navigateur
Nettoyer ses vues avant l'envoi HTTP - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Nettoyer ses vues avant l'envoi HTTP (/showthread.php?tid=5360)



Nettoyer ses vues avant l'envoi HTTP - php_addict - 06-04-2011

bonjour

comme je ne savais pas trop quoi faire ce matin, je me suis amusé à faire ceci:

nettoyer mes vues avant envois HTTP, je m'explique:

j'utilise un MVC fait maison, et la vue est donc du HTML avec pas mal de TAB, d'espaces et de retours à la ligne

voici ce que j'ai testé pour une vue:


<?php
//______________________
// ouverture du tampon |
//______________________|
ob_start();
?>

<!-- debut du HTML -->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<h1>COUCOU JEUWEB.ORG</h1>

</html>


<!-- fin du HTML -->

<?php
$page_content = ob_get_contents(); // copie du contenu du tampon dans une chaîne
$page_content = preg_replace("/(\r\n|\n|\r|\t)/", '', $page_content); // on supprime les retour à la ligne et les TAB
ob_end_clean(); // effacement du contenu du tampon et arrêt de son fonctionnement
echo $page_content ; // on affiche le tampon
?>

je n'ai pas de chiffres à vous donner concernant le nombre d'octets économisés (une centaine d'octet certainement par vue).

est ce que cela faut le coup de faire un truc dans ce genre? ou pas ...? le faites-vous?


RE: nettoyer ses vues avant l'envois HTTP - christouphe - 06-04-2011

donc ça veut dire que le source de ta vue est sur une seule ligne...c'est assez moyen non ?


RE: nettoyer ses vues avant l'envois HTTP - Sephi-Chan - 06-04-2011

Bof, on s'en fout de la tronche du code source généré. Ce qui compte, c'est la lisibilité quand on édite. Smile

Toute fois, je doute que cette opération soit pertinente.

Je viens de faire quelques essais (avec cette page HTML) et je note qu'il n'y a pas d'écart notable de poids entre la version normale et la version minifié d'un fichier.
Après, j'ai compressé ces deux fichiers, et là non plus, pas d'écart notable. Le nom des fichiers parlent d'eux-même.


text.html 135070
text.html.gz 35342
text.min.html 134463
text.min.html.gz 35270

Par contre, aucun doute que ça prend pas mal de temps. Donc à mon sens, mieux vaut laisser le serveur faire son gzip et ne pas consommer de temps processeur inutilement pour ça.


Sephi-Chan



RE: Nettoyer ses vues avant l'envoi HTTP - php_addict - 06-04-2011

ah effectivement le gains en bande passante est ridicule par rapport au temps de nettoyage de la vue...

je n'avais rien de mieux à faire ce matin...


RE: Nettoyer ses vues avant l'envoi HTTP - Viciousity - 06-04-2011

Bah l'avantage de tout condenser en une ligne est de rendre le code source moins facilement copiable pour un débutant qui voudrait pomper ton code XHTML.
Personnellement je suis pas pour la compression vu que je préfère partager mon code afin que les autres puissent critiquer ou s'inspirer Smile


RE: Nettoyer ses vues avant l'envoi HTTP - php_addict - 06-04-2011

(06-04-2011, 10:11 PM)Viciousity a écrit : Personnellement je suis pas pour la compression vu que je préfère partager mon code afin que les autres puissent critiquer ou s'inspirer Smile

il ne s'agit pas de réellement de compression, mais de suppression de caractères inutiles.

d'ailleurs mes pages d'aide sont générées la plupart du temps avec des données de la base de donnée et donc le HTML est une version en cache de la vue pour éviter de continuel accès à la base de donnée, et j'ai viré tout les caractères inutiles lors de la mise en cache du HTML et je trouve ca plutôt pas mal...


RE: Nettoyer ses vues avant l'envoi HTTP - Sephi-Chan - 07-04-2011

Viciousity, minifier le HTML le fera quand même s'afficher correctement dans les lecteurs de code comme "Inspect element" dans Webkit/Firebug, donc ce n'est vraiment pas un problème.

La minification n'est qu'un moyen de réduire le volume des fichiers échangés. C'est surtout intéressant pour le Javascript car ça ne consiste pas qu'à retirer les espaces blancs et commentaires : ça renome aussi les symboles internes pour n'utiliser que quelques caractères, etc.

Pour le CSS et le HTML, le gain est moins conséquent voir presque nul.

En revanche, la compression Gzip est tout à fait transparente et fait gagner un poids conséquent : c'est à utiliser sans modération.


Sephi-Chan