JQuery a deux versions à télécharger, l'une est Production (19 Ko, Minified et Gzipped) , et l'autre est Development (120 Ko, code non compressé) .
Maintenant, la version compacte de 19 ko, si vous la téléchargez, vous verrez est toujours un code exécutable javascript. Comment l'ont-ils compacté? Et comment puis-je «minifier» mon code comme ça aussi?
javascript
gzip
KalEl
la source
la source
Réponses:
Minification de bricolage
Aucun minificateur ne peut compresser correctement un mauvais code.
Dans cet exemple, je veux juste montrer ce que fait un minificateur.
Ce que vous devez faire avant de minifier
Et en ce qui concerne jQuery ... je n'utilise pas jQuery.jQuery est pour les anciens navigateurs, il a été fait pour des raisons de compatibilité .. vérifiez caniuse.com, presque tout fonctionne sur tous les navigateurs (aussi ie10 est normalisé maintenant), je pense que maintenant c'est juste ici pour ralentir votre application Web ... si vous aimez le,
$()
vous devriez créer votre propre fonction simple.Et pourquoi prendre la peine de compresser votre code si vos clients ont besoin de télécharger le script jquery de 100 Ko à chaque fois? Quelle est la taille de votre code non compressé? 5-6kb ..? Ne pas parler des tonnes de plugins que vous ajoutez pour le rendre plus facile.Code d'origine
Lorsque vous écrivez une fonction, vous avez une idée, commencez à écrire des choses et parfois vous vous retrouvez avec quelque chose comme le code suivant.Le code fonctionne.Maintenant, la plupart des gens arrêtent de penser et ajoutent ceci à un minifier et le publient.
Voici le code minifié (j'ai ajouté les nouvelles lignes)
Minifié à l'aide de ( http://javascript-minifier.com/ )
Mais est-ce que tous ces vars, ifs, boucles et définitions sont nécessaires?
La plupart du temps NON !
OPTIONNEL (augmente les performances et le code plus court)
Math
)while
,for
... pasforEach
)"{}","()",";",spaces,newlines
Maintenant, si un minificateur peut compresser le code, vous le faites mal.
Aucun minificateur ne peut compresser correctement un mauvais code.
DIY
Il fait exactement la même chose que les codes ci-dessus.
Performance
http://jsperf.com/diyminify
Vous devez toujours penser à ce dont vous avez besoin:
Avant de dire "Personne n'écrirait un code comme celui ci-dessous", vérifiez les 10 premières questions ici ...
Voici quelques exemples courants que je vois toutes les dix minutes.
Vous voulez une condition réutilisable
Alerte oui seulement si elle existe
Alerte oui ou non
Convertir un nombre en chaîne ou vice versa
Arrondir un nombre
Étage un numéro
cas de commutateur
essayez d'attraper
plus si
mais
indexOf
est lent à lire ceci https://stackoverflow.com/a/30335438/2450730Nombres
Quelques bons articles / sites que j'ai trouvés à propos du bitwise / shorthand:
http://mudcu.be/journal/2011/11/bitwise-gems-and-other-optimizations/
http://www.140byt.es/
http://www.jquery4u.com/javascript/shorthand-javascript-techniques/
Il existe également de nombreux sites jsperf montrant les performances de la sténographie et du bitwsie si vous effectuez une recherche avec votre moteur de recherche préféré.
Je pourrais en faire un pendant des heures ... mais je pense que c'est suffisant pour le moment.
si vous avez des questions, posez-les simplement.
Et rappelez-vous
Aucun minificateur ne peut compresser correctement un mauvais code.
la source
(10.4899845 +.5)|0
donne 10 au lieu de 11.Vous pouvez utiliser l'un des nombreux minificateurs javascript disponibles.
la source
Google vient de mettre à disposition un compilateur javascript qui peut minimiser votre code, éliminer les branches de code mort et plus d'optimisations.
compilateur javascript google
Cordialement
K
la source
En plus de la minification, vous pouvez également l'encoder en base64. Cela rend votre fichier beaucoup plus compressé. Je suis sûr que vous avez vu des fichiers js qui sont enveloppés dans une fonction eval () avec des paramètres (p, a, c, k, e, r) passés. Je l'ai lu dans cet article Comment minifier un fichier Javascript?
la source
J'ai écrit un petit script qui appelle une API pour minifier votre script, vérifiez-le:
Usage:
la source
J'ai récemment eu besoin d'effectuer la même tâche. Alors que les compresseurs répertoriés dans JavaScript CompressorRater font un excellent travail et que l'outil est très utile, les compresseurs ne jouaient pas bien avec le code jQuery que j'utilise (vérifications $ .getScript et jQuery.fn). Même le Google Closure Compressor s'est étouffé sur les mêmes lignes. Alors que j'aurais finalement pu aplanir les problèmes, c'était beaucoup trop compliqué à faire constamment.
Celui qui a finalement fonctionné sans problème était UglifyJS (merci @ Aries51 ), et la compression n'était que légèrement inférieure à toutes les autres. Et comme Google, il dispose d'une API HTTP. Packer est également agréable et a une implémentation de langage en Perl, PHP et .NET.
la source
Il existe actuellement 2 façons de réduire votre code:
http://yui.github.io/yuicompressor/
De nombreux outils de ce type sont également disponibles pour Node et npm - il est recommandé d'automatiser la mnification de Javascript avec Grunt.
http://www.modify-anything.com/
la source
Vous pouvez utiliser le minificateur javascript de ubercompute.com pour minifier votre code.Il réduira votre code javascript jusqu'à 75% de sa version d'origine.
la source