En el contexto de la mejora rendimiento general sitio (la descarga y la velocidad de renderizado) parece que hay una contradicción entre las dos siguientes mejores prácticas:Mejores prácticas: ¿solo descarga CSS que necesita o utiliza un proceso de minificación?
Sólo derribar el CSS que usted necesita para el bienestar página visto. (Debido a que demasiadas reglas de CSS causan renderización lenta)
Siempre minimice CSS y combínelo en un solo archivo. (Debido a que más solicitudes significa más lenta carga de la página)
Ahora dicen que decido seguir la regla 1.
Los siguientes problemas surgen:
Qué si 2 páginas comparten 1 juego de reglas CSS ?
En este caso, necesito poner esas reglas en un archivo separado y hacer referencia a ese archivo desde ambas páginas.
Sin embargo, si empiezan a tener una gran cantidad de estas "reglas comunes", podría terminar referencia a una gran cantidad de archivos separados de cada página, y por lo tanto, infringir la regla 2.
Por ejemplo, la página A puede depender de CSS 1 y 2, mientras que las páginas B y C dependen de CSS 2 y la página D depende de CSS 1.
En este escenario, es imposible tener exactamente un CSS por página o incluso múltiples CSS por página. ya que algunas páginas necesitarán compartir algunos archivos CSS con otras páginas.
¿Pero no podemos resolver este problema combinando todos los CSS de cada página en un archivo CSS por página separado?
Podríamos, pero esto crearía otros problemas.
Si dos páginas comparten un fragmento de CSS, incluso si lo comprimimos a la perfección, todavía vamos a descargar ese fragmento repetidamente, cada vez que solicitamos una página cuyo CSS contiene ese fragmento.
Debido a que hemos comprimido el CSS por la página, hemos permitido que se produzcan redundancias cuando dos o más páginas comparten un fragmento de CSS.
El almacenamiento en caché del navegador no nos sirve de nada aquí porque para el navegador, cada archivo CSS tiene un nombre de archivo diferente y, por lo tanto, es un archivo independiente, aunque algunos contengan el mismo contenido.
Entonces, ¿qué regla deberíamos romper?
la que había tachar es:
1. Sólo se debe reducir el CSS que se necesita para la página que se está viendo.
creo que es mucho más simple y más práctico minify/combinar la mierda de todo el CSS para mi sitio, y bajarla en una vez.
En cuanto a los problemas de rendimiento que esto podría crear, creo que son disminuidos por los siguientes hechos:
navegadores modernos son cada vez más rápido en el procesamiento de reglas CSS, por lo que muy pronto ya no importará si tienes muchas reglas en la memoria que no están siendo usadas.
Tener toda su caché CSS mejorará la velocidad mucho más que cualquier mejora que ganaría dejando fuera de las reglas innecesarias, que van a conseguir cargado todos modos, cuando el usuario navega en las páginas que requieren esas reglas .
¿Estoy aquí?
Respondería totalmente a esto, pero es muy tarde y es una novela para leer. Definitivamente debe minimizar su CSS y también debe combinar tanto como sea posible en un solo archivo. El cliente bajará el archivo una vez y lo almacenará en caché para usarlo en el futuro. Es mucho mejor que múltiples solicitudes HTTP. –
Sí, irónicamente, mi pregunta podría quizás utilizar alguna minificación :) – Jonathan