He visto una serie de referencias a gzipping un javascript para ahorrar tiempo de descarga. Pero También veo una serie de advertencias de que ciertos navegadores no son compatibles con esto.¿Cómo enlazar a un javascript gzip en un documento html?
Tengo dos métodos diferentes a mi disposición:
- uso
mod_deflate
para que los archivos/CSS Apache compresa JS en un directorio dado a través de htaccess - uso
ob_start('gzhandler')
para comprimir un archivo y volver al navegador con los encabezados correctos.
Los problemas con el método 1 es que no todos los navegadores soportan mod_deflate, y no tengo ni idea de cómo escribir el archivo .htaccess
que ser lo suficientemente inteligente como para ajustar esto.
El problema con el método 2 es que no hay una respuesta definitiva sobre cómo saber si un navegador admite un guión gzipped o una hoja de estilo, y si lo hace, debe proporcionarse mime-type como tipo de contenido en el encabezado .
Necesito algunos consejos. Primero, ¿qué método es más universalmente aceptado por los navegadores? En segundo lugar, ¿cómo puedo descomponer usando cualquiera de los métodos para proporcionar el script de copia de seguridad sin comprimir? En tercer lugar, ¿funcionaría <script src="js/lib.js.gz" type="text/javascript"></script>
por sí mismo? (Obviamente no decaería.)
Para el registro, estoy usando PHP5 con mod_deflate y capacidades completas de creación de gzip, y mi doctype es xhtml strict. Además, el javascript en sí mismo está comprimido con YUI. Edit: Acabo de regresar y miré, pero solo tengo Apache 1.3; Pensé que tenía 2, lo siento por mencionar mod_deflate cuando probablemente no lo tengo.
¿Sabes cómo cambiar la verificación del agente de usuario para ver si es IE6 o inferior? Deseo enviar IE6 al archivo JS estándar. (Aparentemente son exigentes con gzip antes de IE6 SP2 e IE7). –
Creo que deberías poder comprobar user-agent para "MSIE 6.0" – Owen
oh olvides añadir que es trivial para spoof user-agent, pero supongo que es más ie6 los usuarios realmente no estarían en eso de ninguna manera: RewriteCond% {HTTP_USER_AGENT}! ". * MSIE 6 \ .0. *" debería funcionar – Owen