2008-10-07 17 views
11

he minified mis javascript y mi cssMejor Práctica: include (o <script src ="

Ahora, ¿Qué es mejor

<script type="text/javascript"> 
<? 
    $r = file_get_contents('min.js'); 
    if($r) echo $r; 
?> 
</script> 

O

<script type="text/javascript" src="min.js"></script> 

misma pregunta.? para CSS

Si la respuesta es '¿a veces porque los navegadores obtienen archivos simultáneamente?' ¿Qué navegadores, y cuáles son ejemplos de f los tiempos en cualquier escenario.

+0

Esto se etiqueta incorectly 'http'. –

Respuesta

22
<script type="text/javascript" src="min.js"></script> 

... es mejor, ya que el navegador del usuario puede almacenar en caché el archivo.

Agregar un parámetro al src como la última marca de tiempo modificada del archivo es aún mejor, ya que el navegador del usuario guardará el archivo en caché pero siempre recuperará la versión más actualizada cuando se modifique el archivo.

<script type="text/javascript" src="min.js?version=20081007134916"></script> 
+0

Con un 20-60% de usuarios que tienen un caché vacío, ¿es mejor tener menos solicitudes HTTP o resultados en caché? –

+0

* citando http://developer.yahoo.com/yui/compressor/ –

+0

¿No se supone que los navegadores obtienen esa información de los encabezados HTTP? –

6

Es mejor más veces para incluir archivos javascript y css porque de esa manera el navegador es capaz de almacenar en caché el archivo javascript/css. De esta forma, el navegador solo carga el archivo una vez, incluso si incluye el archivo en varias otras páginas.

Pero esto solo es cierto si establece un encabezado de expiración y/o control de caché adecuado para los archivos javascript y css a través de php o mod_expires de Apache.

Sobre la base de la recommondation por el rendimiento excepcional Yahoo sólo hay una excepción:!

La única excepción en la que es preferible procesos en línea es con páginas de inicio, como la portada Yahoo 's y Mi Yahoo !. Las páginas de inicio que tienen pocas (tal vez una) vista de página por sesión pueden encontrar que la incorporación de JavaScript y CSS da como resultado tiempos de respuesta más rápidos para el usuario final.

Yo le sugiero que pruebe el complemento "YSlow para Firebug". Responde a muchas preguntas sobre el almacenamiento en caché y el rendimiento del navegador/cliente.

Consulte también:

Apache mod_expires

Best Practices for Speeding Up Your Web Site

YSlow

0

Recuerde que el navegador puede descargar a las dos archivos más en paralelo desde el mismo dominio (que es el valor por defecto en los navegadores modernos - Estoy seguro de IE6 e IE7, no estoy seguro acerca de los demás). Esto significa que si su página hace referencia a 20 pequeños archivos javascript, muchos se descargarán secuencialmente.

Para agregar a lo que ya se dijo: recuerde que si combina/minimiza sus archivos de JavaScript, es mejor fusionarlos todos en uno: la compresión funcionará mejor. Además, incluso si no minimiza sus archivos, recuerde activar GZIP en la configuración de su servidor web; luego, si combina todos sus archivos JS en uno e incluye ese archivo como, la compresión GZIP funcionará mejor (porque la compresión de dos archivos JS juntos produce mejores resultados que la compresión de cada uno por separado).

Si usted está buscando una buena utilidad minimización JS, JS tratar Packer (http://dean.edwards.name/packer/)

+0

Mientras esté haciendo gzipping, Packer está contraproducente. JSMin, YUI Compressor y Packer tienen casi la misma huella gzip, pero Packer introduce un retraso del lado del cliente ya que es eval() 'd. Packer es genial si necesita ofuscación sin embargo. –