Hola a todos,
Quería hacer una consulta a la comunidad (esta vez lado cliente) a ver si me podéis echar una mano.
Estoy construyendo una web bastante... "pesada" a nivel javascript. Se requiere un alto grado de representación gráfica y para ello cargo algunas librerías JQuery y algunos .js que son necesarios para esas representaciones. Además, algún .js con funciones propias (recargar página, cambio de posición imágenes...) y un .js del slider principal. En resumen, cargo aproximadamente 10 .js. He intentado minimzarlos, pero no hay forma posible de hacerlo (de hecho he reducido de 12 a 10).
Decir que todos ellos en formato min para reducir peso y aumentar agilidad.
Bueno, pues tengo dos problemas. Empezaré por el primero. Esa página, llamemosla madre, tiene 4 iframes. Esos iframes contienen 4 páginas que a su vez contienen otros archivos .js, de hecho, alguno de ellos (prácticamente todos) son los mismos que ha cargado la página madre. En concreto, cada iframe, carga 4 .js más. Tenemos algo así:
Página madre:
<script src="script1.js">
<script src="script2.js">
<script src="script3.js">
<script src="script4.js">
<script src="script5.js">
<script src="script6.js">
<script src="script7.js">
<script src="script8.js">
<script src="script9.js">
<script src="script10.js">
Iframe del 1 al 4 (cada uno de ellos):
<script src="script1.js">
<script src="script2.js">
<script src="script3.js">
<script src="script4.js">
Cuando utilizo cualquier debuggeador de carga, por ejemplo he probado "Page Speed" de Chrome, de dice que tiene que procesar casi 4 megas de Javascript, una penalización muy alta.
Y claro, pensé: ¿para qué cargar un script que ya ha cargado la madre si lo debe tener el servidor?
El problema es que no puedo "prescindir" de las declaraciones de los .js dentro de cada iframe porque de ese modo, no me funcionan la partes que tienen que funcionar (slider de imágenes por ejemplo o representaciones gráficas).
¿Existe alguna manera de evitar cargar un .js que ya tiene cargado el servidor y que se pueda utilizar en "otra página", en este caso de un iframe?
En segundo lugar... "Page Speed" me ha comentado: "Aplazar la carga del JavaScript"... Bueno, he leído bastante al respecto y parece un tema interesante y con mucha comunidad. De momento he sacado en claro que, pese a que siempre he hecho lo contrario, las declaraciones del los scripts debo hacerlos antes de cerrar el body.
En cambio, tampoco creo que pueda optimizar mucho más esa carga de subida de los .js porque los necesito todos... de modo que la pregunta es:
Creo que Firefox (no sé si Chrome y Safari también) hacen una carga en paralelo de los .js...¿además de eso hay alguna manera de ganar eficiencia SI SIEMPRE TENGO QUE CARGAR TODOS LOS .JS?
Muchas gracias y siento por la parrafada que me acabo de pegar
Un saludo,