Je reçois beaucoup de mails concernant mon nouveau site et certains sont intrigués par mon système de minifying du Javascript et du CSS. Je vais faire un bref point descriptif sur son fonctionnement même si je vous fournirai les sources bientôt c'est promis
Alors tout d'abord j'ai une classe qui liste les différents scripts que j'utilise. Rien n'est directement mis dans l'entête du layout (corps de la page).
Cette classe sera appelée afin de générer le header avec la balise script pour le Javacript et link pour le CSS.
Par exemple sur mon site cela donne :
Comme vous pouvez le voir l'attribut src est assez spécial ainsi que son contenu.
https://static.crazyws.fr/inc/crazy.minify/?g=js&h=www.crazyws.fr
Le paramètre g concerne le type (pour cet exemple js comme javascript) et h concerne l'host pour la sélection des scripts (tous ne sont pas chargés suivant la page et le domaine).
Le script appelé est une classe PHP qui va générer l'entête d'un fichier javascript ou css qui peut être encodé en Gzip suivant si on choisit ou non de compresser les scripts. Voici l'entête HTTP du script en exemple :
Le Content-Length ne pèse que 200Ko car celui-ci est compressé. Normalement il pèserait plus de 2Mo!
Le système de compression est donc relativement intéressant pour réduire les temps de chargement du site.
Un autre point intéressant dans ma classe concerne l'obfuscation du code javascript.
Je ne ais pas m'étaler sur ce point, vous aurez juste à jeter un œil au code source si vous êtes curieux pour tout comprendre
Autre point essentiel concerne la gestion du cache du côté du serveur Apache.
Voici ma configuration de gestion du cache :
ExpiresActive On ExpiresDefault A1 ExpiresByType text/html A1 ExpiresByType image/gif A604800 ExpiresByType image/jpeg A604800 ExpiresByType image/png A604800 ExpiresByType text/css A7200 ExpiresByType text/javascript A7200 ExpiresByType application/x-javascript A7200ExpiresDefault A29030400 Header append Cache-Control "max-age=29030400, public" ExpiresDefault A604800 Header append Cache-Control "max-age=604800, public" Header append Cache-Control "max-age=7200, public" Header append Cache-Control "max-age=7200, private" Header append Cache-Control "max-age=1, private, must-revalidate"
Grâce à ce système mon Page Speed a vu son score augmenter :
Voilà les explications en attendant que je vous fournisse mes sources.
Si vous avez des questions, n'hésitez pas!
MISES A JOUR DE L'ARTICLE |
Suis intéressé par ton système d'obfuscation et de compression...
Nous sommes, je penses, tous en attente de voir les sources avec les explications
Bon boulot en tout cas!
++
Snide
Salut Snide!

Je travaille en ce moment sur la partie Labs de mon site.
Dessus sera publié la majorité des sources de mon site
Wait & see