En 2010, beaucoup de sites web utilisent massivement le JavaScript. C'est un petit langage de programmation qui permet de créer des effets ou des outils en interaction avec l'internaute.
Contrairement à un logiciel compilé (comme Firefox, la Calculatrice ou votre client MSN), le JavaScript est un code interprété. Cela signifie que plusieurs écritures peuvent donner le même résultat. De ce fait, en iso-compactant le code, on peut gagner de la bande passante à moindre frais.
Il est possible de supprimer les caractères de fin de ligne, mais on peut faire mieux encore : renommer les variables utilisées dans les fonctions. C'est beaucoup plus technique et un logiciel s'impose.
La fonction suivante fait 130 octets.
function Ajouter(VariableA, VariableB) { var VariableC = VariableA; VariableC = VariableC + VariableB; return VariableC; }
Elle est pourtant strictement équivalente à la suivante qui ne fait que 46 octets, soit un ratio final de 35% :
function Ajouter(a,b){var c=a;c=c+b;return c}
En allant beaucoup plus loin, on peut écrire ce qui suit (ratio de 26%). Sauf qu'un logiciel n'est pas nécessairement capable de remonter les formules dans les lignes précédentes :
function Ajouter(a,b){return a+b;}
Un logiciel capable de réduire vos fichiers de ces façons peut être ShrinkSafe. Vous mettez votre script dans un fichier et il suffit de taper la commande que voici :
java -jar shrinksafe.jar code.js > output.js
En repassant derrière pour enlever les fins de ligne, on obtient :
function Ajouter(_1,_2){var _3=_1;_3=_3+_2;return _3;};
On perd bien sûr en lisibilité humaine, mais pour la machine, c'est totalement transparent.
Au niveau de la charge d'un serveur, il y a tout intérêt à compacter les fichiers de la sorte : ce sont des fichiers statiques, plus vites ils seront transmis, plus vite la page de l'utilisateur se chargera.
C'est toujours ça l'objectif !