O processo de compressão da JSA é dividido em duas etapas
A primeira etapa é a compressão de sintaxe, semelhante ao encolhimento do dojo, mas mais seguro do que isso e mais eficiente.
O segundo passo é a compactação de texto, atualmente
Algoritmo de compressão do compressor JavaScript.
(http://dean.edwards.name/packer/)
Estes podem ser definidos na janela Configurações.
Por padrão, a compactação de sintaxe é usada pela primeira vez. A compactação de texto é usada na base original quando o arquivo é maior que o 1000BYTE e a compactação de texto ainda pode ser compactada para 90% do tamanho original.
Aqui está um exemplo de compactação de script para mostrar funções de compressão e otimização da sintaxe JSA.
A cópia do código é a seguinte:
tentar {
// xxxx ();
}
Catch (e) {
aaaa ();
função f1 () {
}
}
Finalmente {
zzzz ();
}
função f2 (var1) {
var var2 = 2;
var var3 = 3;
var withObject = {var2: -2}
com (withObject) {
alerta (var2);
}
}
Resultados compactados (formatado para facilitar o acesso):
A cópia do código é a seguinte:
zzzz ();
função f2 (a) {
var var2 = 2;
var b = 3;
var c = {var2: -2};
com (c) {
alerta (var2);
}
}
Comparação com outras ferramentas de compactação para taxas de compressão:
1. Javascript Compressor (http://dean.edwards.name/packer/)
Com seu próprio código de ferramenta de compactação como exemplo (v2.02) Packer compactado com tamanho 7.428 bytes (remova comentários).
E nossa ferramenta de compressão pode ser compactada para 7.256 bytes
7256 /7428 = 0,9768443726440496
2.DOJO ShrinkSafe (coisas ásperas são ineficientes e perigosas. Recomenda -se que o usuário original o altere o mais rápido possível)
Com seu próprio código -fonte -estrutura como exemplo (v0.4.1):
Ele comprime o tamanho para 149.518 bytes por si só, e podemos encolhê -lo para 81.261 bytes após a compressão
81261 /149518 = 0,5434864029748927
Instruções de segurança:
1.Javascript Compressor
Com base na compactação de texto, não olhei para a lógica com cuidado, mas a possibilidade desse problema de compressão é muito baixa. Nossa ferramenta de compressão também usa seu algoritmo de compressão, no JSI 1.1 A8 e
Nenhuma exceção foi encontrada no teste de sua biblioteca integrada de terceiros. E também há um jQuery de estrutura bem conhecido, então acredito que não haverá problema.
Supplement (2007-03-12): Hoje descobri que esse problema tem um bug ao analisar a sintaxe da string multi-line JavaScript. No entanto, esse problema não existirá mais após ser comprimido pela sintaxe da JSA.
2.DOJO encolhimento perigoso! ! ! ! !
Substitua o nome variável local longo por um nome mais curto, que é uma ferramenta de compressão extremamente insegura, por exemplo:
A cópia do código é a seguinte:
função(){
var withObject = {variável1: 1}
var variável1 = 2;
com (withObject) {
alerta (variável1);
}
}
Compressa para:
A cópia do código é a seguinte:
função(){
var _1 = {variável1: 1};
var _2 = 2;
com (_1) {
alerta (_2);
}
}
Obviamente, isso está errado, esse lixo não presta atenção a alguma sintaxe especial e dinâmica do JavaScript.
Nenhum processamento é feito para funções de avaliação, operações de captura e com declarações.
Por outro lado, o JSA é a ferramenta de compressão mais segura e eficaz que conheço atualmente.
A JSA não apenas fornece funções de compactação de código, mas também pode ser usada para formatação e análise de scripts.
A análise do script pode ser usada para visualizar as informações do script e encontrar possíveis problemas em scripts.
Por exemplo, verifique as funções e variáveis declaradas no script.
Essas variáveis externas foram usadas. etc. .