Contexto: Si bien es cierto que los gastos generales HTTP es más significativo que el análisis JS y CSS, ignorando el impacto de analizar el rendimiento del navegador (incluso si tiene menos de un mega de JS) es una buena manera de conseguirse en problemas.
YSlow, Fiddler y Firebug no son las mejores herramientas para controlar la velocidad de análisis. A menos que se hayan actualizado recientemente, no separan la cantidad de tiempo requerida para obtener JS sobre HTTP o cargar desde la memoria caché en comparación con la cantidad de tiempo dedicado al análisis de la carga real de JS.
La velocidad de Parse es un poco difícil de medir, pero hemos seguido esta métrica varias veces en proyectos en los que he trabajado y el impacto en las cargas de página fue significativo incluso con ~ 500k de JS. Obviamente, los navegadores más antiguos son los que más sufren ... con suerte Chrome, TraceMonkey y otros similares ayudan a resolver esta situación.
Sugerencia: Dependiendo del tipo de tráfico que tiene a su sitio, puede ser bien vale la pena su tiempo para dividir su carga útil JS por lo que algunas grandes trozos de JS que nunca serán usados en una de las páginas más populares nunca se envían al cliente. Por supuesto, esto significa que cuando un nuevo cliente acceda a una página donde se necesita este JS, deberá enviarlo por cable.
Sin embargo, puede ser que, por ejemplo, el 80% de sus usuarios nunca necesite el 50% de sus JS debido a sus patrones de tráfico. Si esto es así, definitivamente debes utilizar cargas útiles JS más pequeñas y empaquetadas solo en las páginas donde el JS es necesario. De lo contrario, el 80% de los usuarios sufrirán penalizaciones de análisis de JS innecesarias en por cada carga de página.
línea de base: Es difícil encontrar el equilibrio adecuado de JS almacenamiento en caché y, cargas útiles envasados más pequeños, pero dependiendo de su patrón de tráfico que es definitivamente vale la pena considerar una técnica que no sea rompiendo todas sus JS en cada pageload.
Es importante tener en cuenta que IE tiene un límite superior arbitrario de solicitudes que realizará. Si tiene demasiados archivos JS diferentes, después de cierto punto IE ya no cargará sus scripts. Esto se puso de manifiesto en un proyecto de Drupal en el que la página cargaba los scripts si la agregación JS estaba desactivada, pero una vez que volvimos a la agregación JS funcionó bien. (La agregación de JS es una característica de Drupal que extraerá todos los JS de una página en un solo archivo para reducir el número de solicitudes. – Metagrapher
También agregando, levik, su sugerencia de dividir los archivos funciona porque algunos navegadores solicitarán y analizarán ambos archivos casi simultáneamente. Otros navegadores esperarán hasta que se analice el primero para cargar el segundo. He descubierto que generalmente menos solicitudes son mejores, junto con un código más conciso y relevante. – Metagrapher