online minificar javascript css minify http2

online - minificar javascript wordpress



¿La minificación y concatenación de archivos JS/CSS, y el uso de sprites para imágenes aún proporcionan beneficios de rendimiento cuando se usa HTTP/2? (5)

Con el nuevo protocolo HTTP / 2, la sobrecarga creada por las repetidas solicitudes HTTP al mismo servidor se ha reducido considerablemente.

Teniendo esto en cuenta, ¿existen aún ventajas de rendimiento significativas para minificar y concatenar archivos JavaScript / CSS, y combinar imágenes en sprites? ¿O estas prácticas ya no son útiles cuando se usa HTTP / 2?


Aún son útiles. HTTP / 2 reduce el impacto de algunas de estas prácticas, pero no elimina su impacto .

La minificación sigue siendo tan útil como siempre . Aunque HTTP / 2 introduce una nueva compresión para los encabezados de los mensajes, eso no tiene nada que ver con la minificación (que trata sobre cuerpos de mensajes). Los algoritmos de compresión para cuerpos de mensaje son los mismos, por lo que la minificación ahorra tanto ancho de banda como antes.

La concatenación y los sprites tendrán menos impacto que antes, pero aún tendrán algún impacto . El mayor problema con la descarga de múltiples archivos en lugar de un único archivo con HTTP / 1 no es realmente un problema del lado HTTP, per se : hay cierta sobrecarga basada en ancho de banda al solicitar cada archivo individualmente, pero está empequeñecido por el tiempo sobrecargar la sesión de TCP / IP cuando haya terminado con un archivo, luego iniciar uno nuevo para el siguiente y repetir esto para cada archivo que desee descargar.

El mayor enfoque de HTTP / 2 es eliminar esa sobrecarga basada en el tiempo: HTTP / 1.1 intentó hacer esto con pipelining, pero no se hizo efectivo en el navegador (Presto es el único motor que lo hizo completamente bien, y Presto es muerto). HTTP / 2 es otro intento, que mejora los métodos de HTTP / 1.1 y al mismo tiempo hace que este tipo de cosas no sean opcionales, y es más exitoso. También elimina parte de la sobrecarga basada en ancho de banda al realizar múltiples solicitudes, al comprimir encabezados, pero no puede eliminar esa sobrecarga por completo, y al descargar múltiples archivos, esas solicitudes aún deben realizarse (como parte de una única sesión de TCP / IP , por lo que hay menos sobrecarga, pero no es cero). Por lo tanto, aunque el impacto de la concatenación y el sprite es proporcionalmente más pequeño, todavía hay algún impacto, especialmente si usa muchos archivos.

Otra cosa a considerar, cuando se trata de concatenación y spriting, es la compresión. Los archivos concatenados de tipos similares tienden a comprimirse mejor que los archivos individuales , ya que el algoritmo de compresión puede aprovechar las similitudes entre los datos concatenados. Un principio similar se aplica a los sprites : la colocación de imágenes similares en diferentes regiones del mismo archivo generalmente da como resultado un archivo más pequeño, porque la compresión de la imagen puede aprovechar similitudes en las diferentes regiones.


Esto puede ser un poco tarde, pero quiero señalar algunos puntos alternativos que también deberían cubrirse.

La primera es que la minificación normalmente emplea algún tipo de uglificación para JavaScript, que tiene beneficios fuera del ancho de banda: evita que las personas analicen fácilmente el código, lo que impide que los usuarios normales usen métodos detallados e ideas acciones maliciosas, incluso sitios bien construidos pueden tener problemas con este. Por supuesto, esto no sustituye a la seguridad, y los usuarios avanzados siempre pueden descifrar el código uglified.

La otra es que no todos los navegadores o conexiones van a usar HTTP / 2, al menos no de manera inmediata, por lo que si el rendimiento de alguna función HTTP / 2 apenas se nota en los clientes HTTP / 2, ¿por qué no beneficiar a los que se conectan aún a través de HTTP? /1.1?

Por último, al final del día, la mejor manera de determinar cómo cualquier cosa afecta la velocidad de su servidor es compararlo.


Hasta ahora, todas las respuestas suponen tácitamente que querrá descargar TODOS los archivos .CSS y .JS para cada página. Un beneficio de usar http / 2 y mantener separados los archivos .CSS y .JS es que solo puede reducir los que necesita, y no descargar algo siempre es más rápido que descargarlo eficientemente.


Sí, todavía es útil.

Junto con la compresión gzip, tu página pesará menos.

Imagine que está utilizando una red GPRS (56Kbps, 500ms ping) muy lenta.

Tienes 50 imágenes pequeñas, 30 javascripts y 20 archivos css.

Esto significa que, con 2 conexiones paralelas, debe esperar más de 100 * 500ms solo para las solicitudes.

Ahora, cada imagen tiene aproximadamente 3-4kb. ¿Qué podría tomar unos pocos milisegundos (5-8?).

Ahora, los archivos CSS y Javascript tienen un rango de 20Kb a 600Kb.

Esto matará a su sitio web con un gran tiempo de transferencia.

Reducir el tiempo para transferir los archivos aumentará la "velocidad" a la que se cargará el sitio web.

Entonces, , ¡sigue siendo útil!


La reducción de JS aún puede reducir el tamaño de muchos símbolos; inflatedJargonSymbolizerTokenManager se convertirá en _a . Un ejemplo que encontré mostró que JQuery GZipped aún tenía el doble del tamaño de JQuery.min GZipped.

También quiero señalar que, si bien no insinuó lo contrario, el comentario de dystroy es correcto y, de hecho, contradice la explicación mal escrita de Wikipedia; Los archivos de JavaScript "Concatenating" pueden ser menos útiles ahora. Minificarlos todavía tiene sus beneficios. Solo quería mencionar eso, en caso de que haya obtenido información allí. De hecho, editaba la página yo mismo si no estaba preocupado por entrar en una batalla de edición.

CSS probablemente tiene menos oportunidades para la reducción de símbolos. Teóricamente, todo lo que obtendría es eliminar espacios en blanco y comentar.