2009-02-25 13 views
10

La pregunta prácticamente ya lo dice todo.¿Qué tan malo es poner javascript fuera del encabezado?

Estoy empezando a agregar algunas características a mi weekend project. Es una aplicación pequeña para mí y para un par de amigos, ya que somos estudiantes de intercambio, es algo útil para nosotros.

Pero la cosa es la siguiente, estoy haciendo esto en php y estructurando todo con includes para poder separar el código. Algunas de estas piezas de código dependen de los snipets de javascripts, entonces, ¿qué tan malo es poner un javascript en el medio del cuerpo? ¿O debería hacer double includes para que el javascript permanezca en el encabezado?

Respuesta

2

Está perfectamente bien colocar Javascript en el cuerpo. Incluso existe el Javascript "en línea". Simplemente no exageres. Si puede empaquetar sus scripts en un archivo separado (lo que no siempre es posible), su código será más fácil de mantener.

1

Hay buenas y malas razones para hacerlo.

BUENO) Si el script no es crítico para la construcción de su página DOM, es bueno hacerlo lo más tarde posible, como sugiere Jim Puls, generalmente en la parte inferior de la página en el nodo raíz BODY. Esto es bueno porque permite que el XHTML rinda de inmediato, creando un efecto psicológico de que la página "carga más rápido". En realidad, se está cargando a la misma velocidad, excepto que el navegador no está gastando ciclos de CPU descargando, interpretando y ejecutando el JS mientras el usuario mira fijamente una ventana blanca del navegador.

MALO) Las etiquetas de scripts normalmente se descargan e interpretan en el orden en que están encerradas. Esto significa que debe administrar cuidadosamente el orden en que están incluidos. Además, debido a que se cargan en serie (uno a la vez), paga un alto costo por cada archivo adicional al que hace referencia porque el navegador debe establecer conexión, verificar caché, descargar, etc. Trucos como "DEFFER" de IE no son estándar. Por este motivo, recomiendo encapsular su javascript en un único archivo cuando pase del desarrollo a la producción, de modo que los usuarios no tengan que realizar múltiples conexiones en serie. También asegúrese de tener activada la compresión gzip.

BUENO) Hay una manera de cargar los scripts con AJAX: llama a su servidor para solicitar el JS y genera un evento cuando se carga el archivo. A continuación, puede invocar eval (o una variante más segura) que lleva sus símbolos al ámbito. Esto permite descargas paralelas de script.

BUENO & MALO) En IE, debe evitar manipular el árbol DOM antes de que el DOM se haya cargado por completo. Busca el evento 'dom: loaded' para esto.

Cuestiones relacionadas