J'essaie d'entrer un concours JavaScript dans lequel le script doit être <= 1kb de taille. Minification et évaluation est autorisée, donc je l'exécutions via le compilateur de fermeture de Google (qui fait un peu mieux que tout autre que j'ai essayé). P>
Mais j'ai trouvé que si je convertitais le script en une chaîne et remplacez les mots longs tels que «fonction» et «retour» avec des caractères simples, je peux réduire encore plus loin. Ensuite, en intégrant la chaîne de mon script, effectuez la substitution pour la restaurer, puis «évaluer» cela, je peux obtenir le comportement d'origine. P>
Alors je me demandais si je pouvais généraliser cette dernière méthode. Quelqu'un a-t-il vu ou écrit du code pour comprimer / décompresser les chaînes de cette manière? Envie d'y penser? P>
edit fort>
Pour vous faire clairement, je vous demande de comprimer et de décompresser les chaînes dans JavaScript - non plus miniquante. Par exemple. Comment trouver les modèles les plus courants d'une chaîne et comment écrire un minuscule décompresseur en JavaScript pour les chaînes où ces occurrences ont été remplacées par des caractères simples. P>
Merci. P>
3 Réponses :
TOKENISATION est la méthode préférée de compression des scripts car il fonctionne avec les mots-clés individuels et autres noms. P>
La plupart de ceci se fait par le compilateur de fermeture - il y a très peu de mots-clés JavaScript que j'utilise (fonction, retour, etc.), mais le compilateur de fermeture rend automatiquement tous les noms de fonction seulement 1 lettre de long, etc.
Avez-vous envisagé de raccourcir votre code en créant un raccourci pour ces objets et méthodes JavaScript que vous utilisez beaucoup dans votre code: puis au lieu d'écrire p> id("foo");
Oui, fait déjà cela ... mais aussi, le compilateur de fermeture le fait aussi partie de son optimisation.
Est-ce que vous recherchez http://www.itéal.com/jscrush/? J'ai trouvé utile pour la même compétition (je suppose que c'est JS1K). P>
Non. C'est un autre miniérateur. Je cherche à compresser et à décompresser des cordes.
Excuses. C'est exactement le genre de chose dont je parlais.
Erm ... peut-être de Dean Edward's / Packer /?
compressorrater.thruhere.net - un outil utile pour comparer la sortie de différents minificateurs ou méthodes de compression
Aucun des minificateurs n'a essayé de travailler aussi bien que Google (y compris Packer), que j'utilise déjà. La question concerne la compression / la décompression des chaînes - il arrive que ma chaîne soit minifiée JS.
Peut-être que vous avez déjà lu celles-ci, mais voici deux articles récents d'une liste à part sur la manière de rédiger un code que les minificateurs peuvent compresser plus facilement: alistatapart.com/articles/better-javascript-Minification alistacart.com/articles/javascript-minification-par-ii
@Jenni - Cheers, je vais lire ça. En fait, j'ai eu mon script à une taille acceptable. Mais je suis toujours intéressé par cette idée de compression / décompression à l'intérieur du script.