Forma correcta de cargar scripts de javascript

radykal

Buenas,

Hace unos días que he empezado a hacerme un blog, la parte de diseño más o menos la tengo, y conforme voy avanzando con el aspecto funcional me estoy dando cuenta que ahora mismo estoy cargando lo que bajo mi punto de vista son demasiados scripts javascript. Algunos de ellos sólo se usan en una página (algunos se usan en todas las páginas, algunos en alguna del blog, en otras sólo en el backend). Cada script lo cargo desde un fichero diferente, que supongo que podria cargar sólo uno y en ese uno ir metiendo todos los que quiera cargar..
Actualmente son:

  • jquery (cargado desde google apis)
  • jquery.hoverIntent (en mi host)
  • jquery.validate (en mi host)
  • jquery.colorbox (en mi host)
  • jquery.ui (en mi host)
  • jqueri.ui.datepicker (en mi host)
  • imgtooltip (en mi host)
  • google.plusone (en mi host)
  • ckeditor (en mi host)

La página la tengo formada en base a modrewrite (la estoy haciendo en php+mysql) por lo que siempre cargo el index y hago los includes necesarios dependiendo de la sección que cargo.

No sé si debería hacer ese mismo sistema de cargar los scripts mediante un include diferente por sección o si tampoco son tantos (la página no veo que cargue lenta, pero tampoco tiene contenido, lo que al leer el código fuente veo el parrafote de lineas con el <script src...> y no me gusta).

He visto javascript loaders tipo using.js que cargan los scripts cuando son necesarios.

Y por último la duda de dónde cargar los scripts, hace años cuando empecé mi primera web se recomendaba meter los scripts en el <head> ahora sin embargo veo que recomiendan colocar todos los que no sean necesarios para cargar la página lo más cerca del </body> posible...

Sé que muchos de vosotros controláis cantidad y tenéis mucha experiencia a ver si me sacais de dudas, como seria la forma "correcta" o que menos sacrifique el rendimiento.

Gracias!

MrTurbo

No creo que sean tantos como para realmente notarlo en tiempo de carga...

pRAXIS

Intenta usar el CDN de google o microsoft para todos los scripts que puedas, creo que jQuery.UI también esta en los CDNs.

Debes pensar una cosa, los scripts se bajan una única vez porque se cachean, así que si tienes una página de portada que carga todos los scripts tendrás un posible problema de lentitud solo la primera vez que cada usuario entre a tu web, las siguientes veces no se volveran a descargar los scripts, como el host lo pagas tú intenta usar los CDN como te he comentado antes para que sean google o microsoft los que bajen los ficheros y solo guarda en tu host lo que no puedas tener en otros.

scumah

El único script gordo que cargas es el de jQueryUI que lo puedes cargar desde google como te han dicho, y que además puedes dejarlo sólo con la funcionalidad que vayas a usar configurando el .js desde aquí. En cualquier caso estaremos hablando de unos 300kb entre todos los .js, y no me parece que a estas alturas eso sea suficiente peso para preocuparse.

A la hora de cargarlos, excepto algunos scripts como los analytics de google o de piwik que van al final del body, cárgalos en el head.

radykal

Gracias, el JQueryUI que uso ya está configurado sólo con lo necesario pero igualmente lo cargaré desde el CDN de Google,aún cuando lo cargaba desde mi host la web cargaba rápida. Gracias por las respuestas

Usuarios habituales

  • radykal
  • scumah
  • pRAXIS
  • MrTurbo