2011-08-04 21 views
5

Estoy aprendiendo a usar el sistema de comercio electrónico de Magento, estoy leyendo su documentación pero no entiendo un término, una "biblioteca de JavaScript precompilada", ¿qué quieren decir con eso ?, ¿cómo puede JavaScript? código debe ser compilado?¿Qué es una biblioteca precompilada de JavaScript?

El descargador web para actualizar e instalar Magento sin el uso de SSH (cubierto en el Capítulo 2). • js: la carpeta del núcleo donde se guarda el código de JavaScript incluido con la instalación de Magento. Nosotros encontrará aquí todas las bibliotecas de JavaScript compiladas previamente.

fuente: http://www.magentocommerce.com/wiki/2_-_magento_concepts_and_architecture/magento_s_base_structure

+0

Compilado en este caso podría significar simplemente: armar de antemano. – Oded

Respuesta

9

No sé lo que utiliza el comercio electrónico Magento, pero sé lo que son compiladores JavaScript.

JavaScript precompilado no es práctico ya que los distintos intérpretes de JavaScript tendrán su propio método de compilación. Por lo tanto, cuando la mayoría de la gente habla acerca de Compilar JavaScript, generalmente se refieren a JavaScript Minificado.

Sin embargo, los últimos minificadores van mucho más allá. Un buen ejemplo es Google Closure CompilerAdvanced Mode. Está relacionado con Google Closure Library and Tools, pero está bien diseñado incluso cuando se usa solo.

Hay un Online Demo of Closure Compiler.

Se llama compilador porque es más que un minificador y el compilador de JavaScript no se usa para nada más. Por ejemplo: Este código

function hello(name) { 
    alert('Hello, ' + name); 
} 
hello('New user'); 

compila a alert("Hello, New user"); en el modo avanzado. Las funciones de un solo uso se eliminan, los nombres de las variables se acortan e incluso se vuelven a usar.

Es muy completo. El modo simple asume que puede haber otro JavaScript involucrado. en cuyo caso preservaría la función hello. El modo avanzado supone que solo hay un único archivo JavaScript o que se exporta correctamente.

Lo único que impide que esto realmente se compile es que no se trata de un bytecode como el compilado C o Java. Todavía tiene que compilarse en tiempo de ejecución como Perl.

+1

De acuerdo, muy probablemente "precompilado" en realidad significa minimizado u ofuscado. Además de Google Closure Compiler, hay docenas de otras herramientas como: uglifyJs, Yui Compressor, Packer & etc –

+0

Correcto, aunque se aplica la definición formal de compilación (transformación del código fuente de una forma a otra). –

+0

** JavaScript compilado no existe. ** Esta afirmación es incorrecta ya que vemos que V8 en realidad compila javascript en código máquina. http://en.wikipedia.org/wiki/V8_(JavaScript_engine) –

7

Magento tiene una opción de configuración en el admin en

System -> Configuration -> Developer -> JavaScript Settings 

llamado Fusionada Javascript Archivos.

Cuando esta configuración está activada, Magento tomará todos los archivos javascript que conoce, los "compilará" en una versión minificada para producir tamaños de archivos más pequeños y luego combinará todos los archivos javascript en un solo archivo javascript. De esta forma, en lugar de abrir múltiples conexiones de red para descargar múltiples archivos, Magento abrirá una única conexión de red para abrir un archivo.

Por lo tanto, cuando la documentación dice que la carpeta contiene las versiones pre-compilados, significa que es donde se almacenan los archivos javascript individuales, y donde los archivos se cargan desde el momento en Fusionado Javascript Archivos

El término compilación viene de Computer Science. Un compilador toma el código fuente y lo transforma de un idioma a otro.

Tradicionalmente, significa tomar el código de un lenguaje de nivel superior (C, .NET, Java, etc.) y transformarlo en el código de máquina (código ensamblador) que entiende el chip de la computadora. Sin embargo, el término es genérico y el uso más moderno incluye tomar el código fuente escrito en un idioma (Javascript) y transformarlo en una forma diferente (javascript minimizado).

Cuestiones relacionadas