Le processus de compression de JSA est divisé en deux étapes
La première étape est la compression de syntaxe, similaire à Dojo Shrinksafe, mais plus sûre qu'elle et plus efficace.
La deuxième étape est la compression de texte, actuellement
Algorithme de compression du compresseur JavaScript.
(http://dean.edwards.name/packer/)
Ceux-ci peuvent être définis dans la fenêtre Paramètres.
Par défaut, la compression de syntaxe est d'abord utilisée. La compression de texte est utilisée sur la base d'origine lorsque le fichier est supérieur à 1000 octets et que la compression de texte peut toujours être compressée à 90% de la taille d'origine.
Voici un exemple de compression de script pour afficher les fonctions de compression et d'optimisation de la syntaxe JSA.
La copie de code est la suivante:
essayer {
// xxxx ();
}
catch (e) {
yyyy ();
fonction f1 () {
}
}
Enfin {
zzzz ();
}
fonction f2 (var1) {
var var2 = 2;
var var3 = 3;
var withobject = {var2: -2}
avec (withObject) {
alerte (var2);
}
}
Résultats compressés (formaté pour un accès facile):
La copie de code est la suivante:
zzzz ();
fonction f2 (a) {
var var2 = 2;
var b = 3;
var c = {var2: -2};
avec (c) {
alerte (var2);
}
}
Comparaison avec d'autres outils de compression pour les ratios de compression:
1. Compresseur JavaScript (http://dean.edwards.name/packer/)
Avec son propre code d'outil de compression comme exemple (v2.02) Packer compressé avec une taille de 7 428 octets (supprimer les commentaires).
Et notre outil de compression peut être comprimé à 7 256 octets
7256/7428 = 0,9768443726440496
2.Dojo Shrinksafe (les choses difficiles sont à la fois inefficaces et dangereuses. Il est recommandé que l'utilisateur d'origine le change dès que possible)
Avec son propre code source de cadre comme exemple (v0.4.1):
Il comprime la taille à 149 518 octets en soi, et nous pouvons le réduire à 81 261 octets après compression
81261/149518 = 0,5434864029748927
Instructions de sécurité:
1. compresseur javascript
Sur la base de la compression de texte, je n'ai pas examiné soigneusement la logique, mais la possibilité de ce problème de compression est très faible. Notre outil de compression utilise également son algorithme de compression, dans JSI 1.1 A8 et
Aucune exception n'a été trouvée dans le test de sa bibliothèque tierce intégrée. Et il y a aussi un framework bien connu jQuery, donc je crois qu'il n'y aura pas de problème.
Supplément (2007-03-12): Aujourd'hui, j'ai trouvé que cette chose avait un bug lors de l'analyse de la syntaxe de chaîne multi-lignes JavaScript. Cependant, ce problème n'existera plus après avoir été compressé par la syntaxe JSA.
2.Dojo Shrinksafe dangereux! ! ! ! !
Remplacez le long nom de variable locale par un nom plus court, qui est un outil de compression extrêmement dangereux, par exemple:
La copie de code est la suivante:
fonction(){
var withobject = {variable1: 1}
Var variable1 = 2;
avec (withObject) {
alerte (variable1);
}
}
Compresser à:
La copie de code est la suivante:
fonction(){
var _1 = {variable1: 1};
var _2 = 2;
avec (_1) {
alert (_2);
}
}
C'est évidemment faux, ces ordures ne font pas attention à une syntaxe spéciale et à la dynamique de JavaScript.
Aucun traitement n'est effectué pour les fonctions d'évaluation, les opérations de capture et avec les déclarations.
En revanche, JSA est l'outil de compression le plus sûr et le plus efficace que je connaisse actuellement.
JSA fournit non seulement des fonctions de compression de code, mais peut également être utilisée pour la mise en forme et l'analyse des scripts.
L'analyse de script peut être utilisée pour visualiser les informations du script et trouver des problèmes potentiels dans les scripts.
Par exemple, vérifiez les fonctions et variables déclarées dans le script.
Ces variables externes ont été utilisées. etc. . .