El proceso de compresión de JSA se divide en dos pasos
El primer paso es la compresión de sintaxis, similar a la seguridad de Dojo, pero más segura que él y más eficiente.
El segundo paso es la compresión de texto, actualmente
Algoritmo de compresión del compresor JavaScript.
(http://dean.edwards.name/packer/)
Estos se pueden configurar en la ventana Configuración.
Por defecto, la compresión de sintaxis se usa primero. La compresión de texto se usa en la base original cuando el archivo es mayor de 1000 byte y la compresión de texto aún se puede comprimir al 90% del tamaño original.
Aquí hay un ejemplo de compresión de script para mostrar funciones de compresión y optimización de sintaxis JSA.
La copia del código es la siguiente:
intentar {
// xxxx ();
}
Catch (e) {
yyyy ();
función f1 () {
}
}
Finalmente {
zzzz ();
}
función f2 (var1) {
var var2 = 2;
var var3 = 3;
var withobject = {var2: -2}
con (withobject) {
alerta (var2);
}
}
Resultados comprimidos (formateados para facilitar el acceso):
La copia del código es la siguiente:
zzzz ();
función f2 (a) {
var var2 = 2;
var b = 3;
var c = {var2: -2};
con (c) {
alerta (var2);
}
}
Comparación con otras herramientas de compresión para relaciones de compresión:
1. Compresor JavaScript (http://dean.edwards.name/packer/)
Con su propio código de herramienta de compresión como un ejemplo (V2.02) Packer comprimido con el tamaño 7,428 bytes (eliminar comentarios).
Y nuestra herramienta de compresión se puede comprimir a 7.256 bytes
7256 /7428 = 0.9768443726440496
2. DOJO ARCOLLADA (Las cosas ásperas son ineficientes y peligrosas. Se recomienda que el usuario original lo cambie lo antes posible)
Con su propio código fuente del marco como ejemplo (v0.4.1):
Comprime el tamaño a 149,518 bytes por sí mismo, y podemos reducirlo a 81,261 bytes después de la compresión
81261 /149518 = 0.5434864029748927
Instrucciones de seguridad:
1. Compresor JavaScript
Según la compresión del texto, no observé la lógica cuidadosamente, pero la posibilidad de este problema de compresión es muy baja. Nuestra herramienta de compresión también utiliza su algoritmo de compresión, en JSI 1.1 A8 y
No se encontró ninguna excepción en la prueba de su biblioteca integrada de terceros. Y también hay un marco conocido jQuery, por lo que creo que no habrá problema.
Suplemento (2007-03-12): Hoy descubrí que esto tiene un error al analizar la sintaxis de cadena de múltiples líneas JavaScript. Sin embargo, este problema ya no existirá después de ser comprimido por la sintaxis JSA.
2. -DOJO RECHOLLSAFE DISMOSO! ! ! ! !
Reemplace el nombre de variable local largo con un nombre más corto, que es una herramienta de compresión extremadamente insegura, por ejemplo:
La copia del código es la siguiente:
función(){
var withobject = {variable1: 1}
var variable1 = 2;
con (withobject) {
alerta (variable1);
}
}
Comprimir a:
La copia del código es la siguiente:
función(){
var _1 = {variable1: 1};
var _2 = 2;
con (_1) {
alerta (_2);
}
}
Obviamente, esto es incorrecto, esta basura no presta atención a alguna sintaxis especial y la dinámica de JavaScript.
No se realiza ningún procesamiento para funciones de evaluación, operaciones de captura y con declaraciones.
En contraste, JSA es la herramienta de compresión más segura y efectiva que conozco en la actualidad.
JSA no solo proporciona funciones de compresión de código, sino que también puede usarse para el formato y el análisis de scripts.
El análisis de script se puede utilizar para ver la información del script y encontrar problemas potenciales en los scripts.
Por ejemplo, verifique las funciones y variables declaradas en el script.
Se utilizaron esas variables externas. etc. . .