Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/09/2011, 20:37
Avatar de freesoftwarrior
freesoftwarrior
 
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: Sobre velocidad y lentitud de carga de una página : duda

Cita:
Iniciado por u_goldman Ver Mensaje
aunque yo soy de la idea de que cada byte, cuenta
Somos del mismo pensar: un byte es un byte jejejeje



Cita:
Iniciado por u_goldman Ver Mensaje
No, no lo hagas, no segmentes estos archivos, recuerda que el peso de ellos es importante pero más importante es el número de requests que haces desde tu sitio web, y cada css y js representan un nuevo request, la mejor práctica es hacerlo como lo estás haciendo y tener un archivo único para css y js.
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:


Cita:
<script language="JavaScript" src="../setup/funciones.js?<%= varControl %>" type="text/javascript"></script>
<script language="JavaScript" src="../setup/ajax/ajaxscript.js?<%= varControl %>" type="text/javascript"></script>
<script language="JavaScript" src="../setup/ajax/getHint.js?<%= varControl %>" type="text/javascript"></script>
<script language="JavaScript" src="../setup/cal2.js?<%= varControl %>" type="text/javascript"></script>
<script language="JavaScript" src="../setup/cal_conf2.js?<%= varControl %>" type="text/javascript"></script>
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?.


Cita:
Iniciado por u_goldman Ver Mensaje
1. Reducir el número de requests -es mejor un archivo css largo que 10 cortos-
2. Utilizar llamadas a css al principio de la página
3. Si es posible utiliza llamadas a javascript al final de la página
4. Utilizar css sprites
5. Inverstigar sobre compresión de requests en el servidor, particularmente gzip
6. Utilizar llamadas en paralelo para contenidos estáticos (css, javascript, imagenes) pero no los distribuyas en mas de 3 o 4 dominios
7. Los archivos js y css deberían estar minificados en tu ambiente de producción
8. Minimizar el número de accesos a DOM mediante javascript
9. En la medida de lo posible evita las llamadas 301 y 302 (redirects)
10. Utiliza técnicas de cache en el servidor

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.

¿Que son CSS sprites?

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?

¿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")

¿A que te refieres con "minificados en un ambiente de producción?. ¿Que son los accesos DOM mediante javascript?

Todas las páginas ASP llevan esta secuencia de comandos:

Cita:
<%
Response.Expires=0
Response.ExpiresAbsolute = Now() - 1
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control","private"
Response.CacheControl = "no-cache"
Response.CacheControl = "Private"
Response.Buffer=True
'***** esta función sirve para convertir en español el formato de fecha en un servidor en inglés
Session.lcid=7178
%>

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é?

Mil gracias por tu respuesta. Me dieron mucho que pensar.

Estaré al tanto de tus comentarios y el de los demás