31 votes

Est-il un avantage pour les minifying Javascript avant gzipping il?

Est-il un motif valable pour minifying avant de le compresser? Il semble très improbable que le format de fichier est plus petit si c'est minimisé en premier.

Je demande parce que le diagnostic de problèmes de production en minifiés code est nettement plus difficile, et je me demande si les gens sont de se soumettre à que pour aucun but.

27voto

Thilo Points 108673

Comme pour la taille de fichier raw, voici un exemple (jQuery 1.4.2):

$ curl http://code.jquery.com/jquery-1.4.2.js | gzip > jquery.gz
$ curl http://code.jquery.com/jquery-1.4.2.min.js | gzip > jquery-min.gz

$ ls -la jquery*
-rw-r--r--  1 me  staff  24545 Apr  7 12:02 jquery-min.gz
-rw-r--r--  1 me  staff  45978 Apr  7 12:02 jquery.gz

Donc, la version compacte est d'environ la moitié de la taille.

22voto

Wolph Points 28062

Oui, il est certainement un avantage.

Minifying est une compression avec perte alors que gzipping est sans perte. Ergo, avec minifying vous supprimez les données inutiles (comme les commentaires et à long variablenames) qui sera toujours aider à faire de votre fichier plus petit. Même avec gzip il y aura toujours une différence dans la plupart des cas.

Exemple:

function foo(this_is_my_variable){
    var this_is_my_other_variable = 0;
    this_is_my_other_variable = this_is_my_other_variable + this_is_my_variable;
    return this_is_my_other_variable;
}

Qui pourrait être minimisé à:

function foo(a){
    var b = 0;
    b = b +a;
    return b;
}

Ou si le minifier est intelligent:

function foo(a){
    return a;
}

Tous les code donne les mêmes résultats, mais la taille diffère beaucoup.

3voto

Peut-être. Au-delà de la suppression des espaces, minifying JavaScript peut conduire à plus de répétitions d'un même texte, ce qui peut signifier légèrement plus élevé de compression avec gzip. Heureusement, il est facile de faire un "avant-après" depuis l' gzip outil de ligne de commande, commun dans les *nix et disponible pour Windows utilise le même algorithme de compression (bien que n'étant pas exactement le même format).

2voto

Dean Harding Points 40164

Il peut aussi aider à accélérer l'analyse du code javascript dans le navigateur. Selon la taille de vos fichiers, le navigateur peut consacrer beaucoup de temps d'analyse et de tokenising le fichier qui va être réduit en minifying.

Bien sûr, seul l'étalonnage et le profilage va vous dire si cela va vraiment être un avantage pour votre situation particulière.

Ce que je trouve qui fonctionne le mieux est je de conserver à la fois compacte et non minimisé les versions de tous mes .js fichiers sur mon site et il suffit d'utiliser une configuration de commutateur pour basculer entre les deux. De cette façon, la production normale pouvez utiliser la version compacte et puis si je dois debug quelque chose, il suffit de basculer le commutateur et le non-version minifiée est servi à la place. (Le processus de construction s'assure que les minifiés et non minimisé les versions sont en synchronisation, bien sûr)

1voto

goat Points 17643

Je l'ai toujours vu réduction notable du nombre d'octets quand je rapetisser avant de gzip.

J'ai 20 minutes de hack de travail script php qui s'interface avec yui compressor, et google closure compiler. Il me montre avant et après octets, y compris après gzip, donc assez facile pour moi de vérifier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X