Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/09/2011, 01:12
Avatar de u_goldman
u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Sobre velocidad y lentitud de carga de una página : duda

Cita:
Iniciado por freesoftwarrior Ver Mensaje
En realidad ahora tengo un gran archivo CSS y otro JS con todas las funciones. Eventualmente hay una o 3 páginas que cargan hasta 4 archivos JS: uno para Ajax, 2 para una función de calendario y su configuración y otro más para las funciones Ajax (aunque este último podría fusionarlo con el primero). Este sería un ejemplo:

El 1ro. es el gran archivo de funciones.
El 2do. crea las instancias de Ajax (creación de objetos y demás). Esta es la que puedo fusionar con otro archivo JS.
El 3ro. ejecuta las rutinas para un efecto Ajax de esos que según vas escribiendo algo aparecen "sugerencias". Este es el que podría unirlo con el 2do.
El 4to. es el JS que controla las operaciones y apariencia de un calendario.
El 5to. es el archivo de configuración del anterior. No creo que pueda fusionarlo pero voy a hacer la prueba.

Si te he comprendido bien, mejor sería si todos estos archivo estuvieran en uno solo, ¿verdad?.
Pero, y ahí mi duda, pocas páginas utilizan todos estos archivos mencionados: ¿por que hacer que todas las páginas carguen un archivo tan grande?.
Si, fusiona tantos como puedas o en su defecto como lo apuntas es tener solamente lo que necesites por página pero me parece que será un poco complicado de mantener, el punto aquí es limitar los request que hacen estos archivos externos.

Cita:
Iniciado por freesoftwarrior Ver Mensaje
Hay varias cosas que no comprendo en realidad.
Yo tenía entendido que las llamadas a CSS y JS sería mejor hacerlo antes del </head>. Por lo general no habría ningún problema en trasladar todos las llamadas y scripts fijos al final de cada página.
JavaScript bloquea temporalmente la descarga en paralelo, es decir que tus archivos, particularmente descarga de imágenes no se ejecutarán hasta que se haya interpretado el JavaScript, en cambio si colocas tu JavaScript al final de la página y utilizas técnicas de descarga desde diferentes dominios todos estos se ejecutarán en paralelo (simultaneamente) y dejarás el JavaScript (bloqueo de descargas) al final.

Cita:
Iniciado por freesoftwarrior Ver Mensaje
¿Que son CSS sprites?
En síntesis se trata de una vez más minimizar las requests (mmmhh peticiones, je) y trabajar mejor con una imagen grande posicionada con css, pues esta imagen será descargada una vez y estará en cache, aquí hay mas información.

Cita:
Iniciado por freesoftwarrior Ver Mensaje
La comprensión request GZIP si mal no tengo entendido es más para PHP que para ASP. El proyecto que estoy realizando es en ASP clásico. ¿Acaso hay forma de poder utilizar GZIP y así poder invocar archivos comprimidos del servidor?¿Esto podría ser aplicable para JS, CSS también, o también para otro tipo de archivos?
Por acá hay más información, es para IIS6 pero puedes investigar para otras versiones si es que no usas ISS6

Cita:
Iniciado por freesoftwarrior Ver Mensaje
¿A que te refieres con no distribuirlos en más de 3 o 4 dominios?. El proyecto sería publicado en un único dominio con varios sub-dominios (va a ser una especie de servicio y cada sub-dominio apuntaría a una carpeta propia, esto para evitar el formato www.dominio.com/nombredecuenta y ofrecer nombredecuenta.dominio.com que creeo es un poco más "estético")
Me refiero a eso, utilizar otros dominios para la descarga de tus contenidos estáticos, pues esto ayuda a la descarga en paralelo, que es el principio de CDN aunque si implementar CDN es demasiado, basta con distribuír tus imágenes, css, js, flash, y demás contenidos estáticos en otros dominios.

Cita:
Iniciado por freesoftwarrior Ver Mensaje
¿A que te refieres con "minificados en un ambiente de producción?. ¿Que son los accesos DOM mediante javascript?
Je je, es que no encontré la traducción de "minified" pero básicamente necesitas comprimir tus archivos estáticos y menciono que esto tiene que ser hecho en producción porque no querrás tener que lidiar con archivos comprimidos en desarrollo

Por lo de los accesos a DOM es cualquier cosa que hagas en JavaScript para manipular tu HTML, estas operaciones son particularmente lentas y es muy sencillo dejarse llevar por la belleza de esta técnica, pero hay que tomar en cuenta que tienen un precio muy alto en el rendimiento de tu aplicación.

Cita:
Iniciado por freesoftwarrior Ver Mensaje
Todas las páginas ASP llevan esta secuencia de comandos:
Me refiero precisamente a lo opuesto, necesitarías ver que es lo que puedes maneter en cache y por cuanto tiempo, de lo contrario todo se está ejecutando por cada petición al servidor.

Cita:
Iniciado por freesoftwarrior Ver Mensaje
Además genero un número aleatorio que incluyo como "parámetro" en todos los archivos JS y CSS (mediante un ? como indico en el ejemplo de request que publiqué líneas arriba). Esta es un truco que aprendí de Ajax para asegurarme de una llamada "limpia" y evitar que se use el caché. ¿A esto te refieres con la de técnicas caché?
Entiendo el punto de no implementar cache en llamadas asíncronas (aunque también es debatible) pero coincido en que es lo más cómodo para los contenidos estáticos como tus css y javascript, la verdad no veo mucha utilidad de asegurarte que la petición sea siempre nueva, finalmente no creo que esos archivos cambien con cada petición.


Cita:
Iniciado por freesoftwarrior Ver Mensaje
Mil gracias por tu respuesta. Me dieron mucho que pensar.

Estaré al tanto de tus comentarios y el de los demás
Por nada, espero que te sirva


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway

Última edición por u_goldman; 12/09/2011 a las 01:18