Minimizo mis archivos css y js sobre la marcha con google.codes minify. También he configurado mi .htaccess para usar desinflar en todos mis archivos css y js, razón por la cual algunos archivos js (como shadowbox y tinymce) hacen referencia a otros archivos js en el código. Así que estoy comprimiendo con apache deflate y también minimizo comprime algunos archivos js y css con gzip - ¿estoy creando sobrecarga haciendo esto? Primero se ejecutará gzipping (minify) y luego zlib (deflate) nuevamente. O apache desinflar ignorar los archivos ya gzipped que tienen los atributos establecidos por minify en los encabezados. Alguien tiene alguna experiencia con esto?Combinando deflate y minify - ¿estoy creando gastos generales?
Respuesta
Minificación + desinflar/gzip funciona muy bien.
Uso mod rewrite para hacer eso, precompuse todos los archivos css/js en 2 versiones, originales y .css.gz/.js.gz.
Navegador simplemente envía la solicitud .js/.css, el servidor comprueba la existencia de .js.gz/.css.gz y devuelve el contenido comprimido si se cumplen ciertas condiciones.
Por lo tanto, no importa para js archivo/css se cargan sobre la marcha desde js (por ejemplo, su shadowbox o tinymce)
Básicamente, como este
RewriteEngine On
RewriteBase/
#Check for browser's Accept-Encoding,
RewriteCond "%{HTTP:Accept-Encoding}" "gzip.*deflate|deflate.*gzip"
#check file name is endswith css or js
RewriteCond %{REQUEST_FILENAME} "\.(css|js)$"
#check existance of .gz file name
RewriteCond %{REQUEST_FILENAME}.gz -s
#rewrite it to .js.gz or .css.gz
RewriteRule ^.*$ %{REQUEST_URI}.gz [L]
#update some response header
<FilesMatch "\.js\.gz$">
AddEncoding gzip .gz
ForceType "text/javascript"
</FilesMatch>
<FilesMatch "\.css\.gz$">
AddEncoding gzip .gz
ForceType "text/css"
</FilesMatch>
¡Gracias por eso! ¡Excelente script que tienes allí! Pero ya sabes que la herramienta minify (no la minificación en general) de google realmente minimiza Y envía los archivos con compresión y luego lo haría de nuevo con la parte del servidor (apache desinflar sobre la marcha). Y al hacerlo dos veces me preguntaba si estaba creando gastos generales ... lo siento si no estaba claro ... –
¿Quieres decir doble gzipping? Supongo que no será así porque los navegadores no sabrán su necesidad de descomprimir 2 veces. – YOU
gzip utiliza el algoritmo de compresión zlib , y la mayoría de las secuencias de bytes no se comprimirán bien la segunda vez.
oh, no sabía que gzip usa librerías zlib ... pensé que esa era la diferencia entre gzip y desinflar. gzip usando las bibliotecas well gzip y desinflar usando las bibliotecas zlib. pero la pregunta es si el archivo se comprimirá por duplicado, estoy seguro de que no se hará mucho más pequeño, pero el cliente tendría que primero descromover el desinflado y luego los archivos minificados, lo mismo para el servidor. entonces debe haber una cabeza allá arriba ...? –
Si usted ya sabe que no se volverá más pequeño, entonces ¿por qué hacerlo? :) –
Minify no sirve los archivos a través de Apache, por lo que no hay doble codificación.
Con el filtro DEFLATE, Apache gzip el archivo solicitado sobre la marcha cada vez. Minify gzips el archivo en la primera solicitud y luego envía la versión en antememoria almacenada en caché para solicitudes posteriores.
Al estar basado en PHP, intercambia el rendimiento por flexibilidad y facilidad de mantenimiento, pero si lanza un caché de proxy delante de él, funcionará tan bien como la configuración de S.Mark.
- 1. ¿Qué es "gastos generales"?
- 2. WebSockets: ¿útil para reducir gastos generales?
- 3. Medición de gastos generales de excepción en C++
- 4. Tiempo de medición de gastos generales en Java
- 5. ¿La fundición de Java introduce gastos generales? ¿Por qué?
- 6. En MySQL, ¿qué significa "gastos generales", qué tiene de malo y cómo solucionarlo?
- 7. JAX-RS y gastos de
- 8. Prueba de gastos generales de rendimiento de la solución ORM personalizada: cómo hacerlo.
- 9. En Sphinx, ¿cómo puedo crear una sección de "terminología" vinculable sin gastos generales?
- 10. ¿Vale la pena usar Scala en Android? ¿Hay muchos gastos generales? ¿Problemas?
- 11. ¿Qué gastos generales hay en la realización de un impulso de identidad :: lexical_cast?
- 12. ¿Cómo explico los gastos generales de comunicación entre desarrolladores en un equipo?
- 13. URI Combinando y rutas
- 14. ¿Estoy creando una pérdida de memoria aquí?
- 15. Combinando C++ y C#
- 16. Contando y combinando filas
- 17. Internet Explorer 8 + Deflate
- 18. ¿Alguna buena implementación de Zend Framework + Minify?
- 19. JavaScript DEFLATE Implementación
- 20. Combinando
- 21. ¿Combinando jquery cluetip y hoverintent?
- 22. Combinando Clojure defprotocol y defrecord
- 23. zlib, deflate: ¿Cuánta memoria asignar?
- 24. En Node.js, ¿estoy creando un nuevo objeto cuando "Requerir"?
- 25. sass - ¿reloj con minify automático?
- 26. minify individualmente JS y CSS en Visual Studio 2010
- 27. Preguntas generales sobre GCC y compilación cruzada
- 28. Combinando echo y cat en Unix
- 29. Regex - Combinando lookbehind positivo y negativo
- 30. DataAnnotations combinando y IDataErrorInfo para WPF
¡Esa es una muy buena pregunta! No tengo idea de cuál es la respuesta, pero el autor de Minify parece muy receptivo en su grupo de discusión: https://groups.google.com/group/minify – Annie