2010-06-10 17 views
23

Me he dado cuenta de que cada vez que uso Google's Closure Compiler Service, deja unos espacios innecesarios en el código compilado presentado en el lado derecho de la página. Estos corresponden a saltos de línea en la versión alojada del código compilado.¿Por qué el compilador de cierres de Google deja algunos espacios innecesarios o saltos de línea?

Por ejemplo (tenga en cuenta los saltos de línea, cada uno de los cuales parece innecesaria):

http://troy.onespot.com/static/stack_overflow/closure_spaces.js

Hasta la fecha, sólo he estado quitando manualmente, pero tengo curiosidad por qué están ahí . ¿Es limitar la longitud de línea de la versión alojada del código para que sea más legible? ¿Podría el compilador ser lo suficientemente inteligente como para dejarlos o insertarlos intencionalmente para maximizar los esfuerzos de compresión GZIP?

Sé que tienen un efecto trivial en el tamaño del archivo, pero con tanto esfuerzo para minificar hasta el último byte en el script fuente, es contradictorio por qué están ahí.

+0

no puedo acceder a esa [default.js] (http://closure-compiler.appspot.com/code/jsc39ddc01a5a74a754148a33d2d8f1444/default.js), el enlace devuelve una página con un 'Content-Length' de 0. ¿Puedes pegar (parte del) código en tu pregunta? –

+0

Lo siento - Supuse que Google alojaba el código compilado indefinidamente, pero aparentemente no es así. Actualicé el enlace en la pregunta anterior. – Bungle

+0

Lo más loco es Google PageSpeed ​​Insights se quejan de unos pocos bytes (<1KB) y cuando descargo los archivos optimizados, el js tiene 180K líneas largas, pero no hay forma de ordenar al compilador Closure (API o aplicación JAVA) que rompa líneas de cualquier longitud (por ejemplo, 180K) –

Respuesta

38

citando el Closure Compiler FAQ:

¿Por qué hay saltos de línea al azar en los scripts compilados?

El compilador de cierre intencionalmente agrega saltos de línea cada 500 caracteres más o menos. Los cortafuegos y los proxies a veces corrompen o ignoran archivos JavaScript grandes con líneas muy largas. Agregar saltos de línea cada 500 caracteres evita este problema. La eliminación de los saltos de línea no tiene ningún efecto en la semántica de un script. El impacto sobre el tamaño del código es pequeño, y el compilador optimiza la ubicación de la interrupción de línea de modo que la penalización del tamaño del código es aún menor cuando los archivos se gzip.

¡Sabía que era inteligente! :)

+1

¡Impresionante, eso lo resuelve! No había visto las preguntas frecuentes, gracias por el enlace, y agradezco la respuesta. – Bungle

+0

Lo más loco es Google PageSpeed ​​Insights se quejan de unos pocos bytes (<1KB) y cuando descargo los archivos optimizados, el js tiene 180K líneas largas, pero no hay forma de ordenar al compilador Closure (API o aplicación JAVA) que rompa líneas de cualquier longitud (por ejemplo, 180K) –

+1

@JoseNobile Recientemente me enfrenté a este problema de salto de línea con la aplicación Java. Lo solucioné eliminando manualmente los saltos de línea introducidos por el compilador de cierre. – Stephan

Cuestiones relacionadas