Maison  >  Article  >  interface Web  >  Outil d'analyse et de compression JavaScript Compétences JavaScript Analyser_javascript

Outil d'analyse et de compression JavaScript Compétences JavaScript Analyser_javascript

WBOY
WBOYoriginal
2016-05-16 16:22:351204parcourir

Le processus de compression JSA est divisé en deux étapes

La première étape est la compression syntaxique, qui est similaire à Dojo ShrinkSafe, mais plus sûre et plus efficace.

La deuxième étape est la compression de texte, actuellement utilisée
Algorithme de compression de JavaScript Compressor.
(http://dean.edwards.name/packer/ )

Ceux-ci peuvent être définis dans la fenêtre des paramètres.
Par défaut, la compression syntaxique est utilisée en premier. Lorsque le fichier fait plus de 1 000 octets et peut encore être compressé à 90 % de sa taille d'origine à l'aide de la compression de texte, la compression de texte est utilisée sur la base d'origine.

Ce qui suit est un exemple de compression de script pour démontrer les fonctions de compression et d'optimisation de la syntaxe JSA.

Copier le code Le code est le suivant :

essayez {
//xxxx();
}
attraper(e) {
aaaa();
fonction f1() {
}
}
enfin {
zzzz();
}
fonction f2(var1) {
var var2 = 2; var var3 = 3; var avecObjet = {var2:-2}
avec(avecObjet){
alerte(var2);
}
}


Résultats compressés (formatés pour une référence facile) :

zzzz();
fonction f2(A) {
var var2 = 2; variable B = 3 ;
varC = {var2:-2};
avec (C) {
alerte(var2);
}
}



Comparaison du taux de compression avec d'autres outils de compression :
1. Compresseur JavaScript (http://dean.edwards.name/packer/)

En prenant comme exemple son propre code d'outil de compression (v2.02), la taille après compression du packer est de 7 428 octets (commentaires supprimés).

​ Et notre outil de compression peut compresser jusqu'à 7 256 octets

7256 / 7428 = 0,9768443726440496
2.Dojo ShrinkSafe (truc grossier, inefficace et dangereux, il est recommandé aux utilisateurs d'origine de le remplacer rapidement)
Avec son propre code source de framework comme exemple (v0.4.1) :
Sa propre taille compressée est de 149 518 octets, mais nous pouvons la réduire à 81 261 octets après compression
81261 / 149518 = 0,5434864029748927

Consignes de sécurité :

1.Compresseur JavaScript

Compression basée sur le texte, je n'ai pas examiné la logique en détail, mais la possibilité de problèmes avec ce type de compression est très faible. Notre outil de compression utilise également son algorithme de compression, qui est utilisé dans JSI 1.1 a8 et.

Aucune anomalie n'a été trouvée lors du test de sa bibliothèque de classes tierce intégrée. De plus, le framework bien connu JQuery est utilisé, donc je pense qu'il n'y aura aucun problème.

Supplémentaire (12/03/2007) : Aujourd'hui, j'ai découvert que cet outil présente un bug lors de l'analyse de la syntaxe de chaîne multiligne JavaScript. Cependant, ce problème n'existera plus après la compression de la syntaxe JSA.

2.Dojo ShrinkSafe Danger ! ! ! ! !

Remplacez les noms de variables locales longs par des noms plus courts. Il s'agit d'un outil de compression extrêmement dangereux. Par exemple :

Copier le code Le code est le suivant : fonction(){
var withObject = {variable1:1}
var variable1 = 2;
avec(avecObjet){
alerte(variable1);
}
}



sera compressé en :

Copier le code Le code est le suivant : fonction(){
var _1={variable1:1};
var_2=2;
avec(_1){
alerte(_2);
}
}



C'est évidemment faux. Ces ordures ne prêtent pas attention à certaines syntaxes et dynamiques spéciales de JavaScript.
La fonction eval, l'opération catch et l'instruction with ne sont en aucun cas traitées. En comparaison, JSA est actuellement l'outil de compression le plus sûr et le plus efficace que je connaisse.

JSA fournit non seulement une fonction de compression de code, mais peut également effectuer le formatage et l'analyse de scripts.

La fonction d'analyse de script peut être utilisée pour afficher les informations du script et trouver des problèmes potentiels dans le script.
Par exemple, vérifiez quelles fonctions et variables sont déclarées dans le script.

Quelles variables externes sont utilisées. etc. . .

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn