SlideShare una empresa de Scribd logo
1 de 65
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],MOTIVACIÓN
Regla 1: Reducir HTTP Requests
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UTILIZAR IMAGE MAPS
[object Object],[object Object],[object Object],UTILIZAR CSS SPRITES
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UTILIZAR INLINE IMAGES
[object Object],[object Object],[object Object],[object Object],UNIFICAR SCRIPTS Y CSS
Regla 2: Content Delivery Network
[object Object],[object Object],[object Object],UTILIZAR CDN
Regla 3: Añadir Expires Header
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],EXPIRES HEADER
Regla 4: Componentes Gzip
[object Object],[object Object],[object Object],[object Object],[object Object],COMPONENTES GZIP
[object Object],PROXY CACHE (I)
[object Object],[object Object],[object Object],[object Object],PROXY CACHE (II)
Regla 5: CSS  en la cabecera
[object Object],[object Object],CSS
Regla 6: Scripts al final de la página
DESCARGAS PARALELAS ,[object Object],[object Object],[object Object]
2 descargas paralelas por host. 4 descargas paralelas por host. 8 descargas paralelas por host.
Utilizar CNAMEs (alias DNS) para dividir sus componentes en múltiples hostnames.
JavaScripts bloquean la descarga paralela.
http://stevesouders.com/hpws/move-scripts.php Diferencia de tiempo entre scripts en parte superior a la parte inferior. http://stevesouders.com/hpws/js-blocking.php Ejemplo de cómo el script bloquea las descargas de los componentes.
Regla 7: Evitar expresiones CSS
[object Object],[object Object],EXPRESIONES CSS Width: expression(document.body.clientWidth < 600 ? “600px” : “auto”); ,[object Object],[object Object],[object Object],[object Object]
SOLUCIÓN ,[object Object],<style> P{ background-color: expression(altBgcolor(this); } </style> <script type=“text-javascript”> function altBgcolor(elem){ elem.style.backgroundColor = (new Date()).getHours()%2 ? “#F08A00” : “#B8D4FF”; } </script>
SOLUCIÓN ,[object Object]
Ejemplo de CSS Expression. http://stevesouders.com/hpws/expression-counter.php Ejemplo de One-Time Expression. http://stevesouders.com/hpws/onetime-expressions.php
Regla 8: Hacer Javascript y CSS externos
JS/CSS EXTERNOS vs JS/CSS INTERNOS   ,[object Object],Es aconsejable para sites con pocas páginas visitadas por usuario. ,[object Object],Permite cachear los archivos para no volver a descargarlos. Es aconsejable para sites donde el usuario visita muchas páginas al mes o por sesión.
JAVASCRIPT/CSS EXTERNOS ,[object Object],[object Object],Es aconsejable para sites con pocas páginas visitadas por usuario. Es aconsejable para sites donde el usuario visita muchas páginas al mes o por sesión.
JAVASCRIPT/CSS INTERNOS ,[object Object],Tiene muchas visitas al mes pero solo una visita por sesión. Muchos usuarios vacían la caché al cerrar el navegador. En mucho casos es la única página visitada del site por lo que no comparte JavaScripts ni CSS con otras páginas.
POST-ONLOAD DOWNLOAD La home utiliza JavaScripts / CSS internos pero al cargarse esta. Con el evento OnLoad() descarga los archivos externos para las sucesivas páginas.
EJEMPLO POST-ONLOAD
INTERNO / EXTERNO DINÁMICAMENTE
Ejemplo de Post-onload. http://stevesouders.com/hpws/post-onload.php Ejemplo de  Dynamic Inlining . http://stevesouders.com/hpws/dynamic-inlining.php
Regla 9: Reducir búsquedas DNS
TTLs & DNS CACHING Cada petición DNS del navegador tarda entre 20-120 ms. ,[object Object],[object Object],[object Object],[object Object]
[object Object]
[object Object],DnsCacheTimeout: 30 minutes KeepAliveTimeout: 1 minute ServerInfoTimeOut: 2 minutes ,[object Object],network.dnsCacheExpiration: 1 minute network.dnsCacheEntries: 20 network.http.keep-alive.timeout: 5 minutes
Reducir el número de hostnames incluidos en el site.
Regla 10: Minimizar JavaScripts y CSS
OFUSCACIÓN ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OFUSCACIÓN ,[object Object],http://crockford.com/javascript/jsmin http://dojotoolkit.org/
Resultados: reglas 6 - 10
Regla 11: Evitar redirecciones
Redirects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Redirects ,[object Object]
Usos y Alternativas de los Redirects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evitar Redirects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Regla 12: Eliminar Scripts duplicados
Scripts Duplicados ,[object Object],[object Object],[object Object]
Scripts Duplicados ,[object Object],[object Object],[object Object]
Evitar Scripts Duplicados ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Regla 13: Configurar ETags
¿Qué es un ETag? ,[object Object],[object Object],[object Object],[object Object],[object Object]
¿Qué es un ETag? ,[object Object],[object Object],[object Object]
Problema de los ETag’s ,[object Object],[object Object],[object Object]
Reconfigurar los ETag’s o eliminarlos ,[object Object],[object Object],[object Object],[object Object],[object Object]
ETag’s en el mundo real
Regla 14: Hacer el Ajax Cacheable
Web 2.0 ,[object Object],[object Object],[object Object],[object Object]
Ajax ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Optimización de las peticiones Ajax ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Preguntas?

Más contenido relacionado

La actualidad más candente

Taller de optimizacion de servidores web tipo LAMP
Taller de optimizacion de servidores web tipo LAMPTaller de optimizacion de servidores web tipo LAMP
Taller de optimizacion de servidores web tipo LAMPYannick Warnier
 
Proyecto Integrado Chef
Proyecto Integrado ChefProyecto Integrado Chef
Proyecto Integrado Chefjuanbeato4
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando phpCarlos Cruz Rincon
 
Hacking uploaders
Hacking uploadersHacking uploaders
Hacking uploaderslinenoise
 
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
 Introducción a herramientas de Roots (José Debuchy, WCBA 2017) Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)wpargentina
 
Html5 - El futuro de la web
Html5 - El futuro de la webHtml5 - El futuro de la web
Html5 - El futuro de la webJoan Fernández
 
Sacándole el jugo a apache
Sacándole el jugo a apacheSacándole el jugo a apache
Sacándole el jugo a apacheJavier Aroche
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesDani Latorre
 
JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4  JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4 César Pajares
 
Apache: Servidor Web Seguro (HTTPS)
Apache: Servidor Web Seguro (HTTPS)Apache: Servidor Web Seguro (HTTPS)
Apache: Servidor Web Seguro (HTTPS)pablozacrosuarez
 
Webinar - Radiografía actual del lenguaje PHP
Webinar - Radiografía actual del lenguaje PHPWebinar - Radiografía actual del lenguaje PHP
Webinar - Radiografía actual del lenguaje PHPArsys
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jspdtbadboy0
 
Apache3 christiany victor
Apache3 christiany victorApache3 christiany victor
Apache3 christiany victorcrisbeme
 

La actualidad más candente (17)

Taller de optimizacion de servidores web tipo LAMP
Taller de optimizacion de servidores web tipo LAMPTaller de optimizacion de servidores web tipo LAMP
Taller de optimizacion de servidores web tipo LAMP
 
1212
12121212
1212
 
Proyecto Integrado Chef
Proyecto Integrado ChefProyecto Integrado Chef
Proyecto Integrado Chef
 
Webperf wordpress
Webperf wordpressWebperf wordpress
Webperf wordpress
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando php
 
wp-cli
wp-cliwp-cli
wp-cli
 
Hacking uploaders
Hacking uploadersHacking uploaders
Hacking uploaders
 
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
 Introducción a herramientas de Roots (José Debuchy, WCBA 2017) Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
 
Deploying Wordpress
Deploying WordpressDeploying Wordpress
Deploying Wordpress
 
Html5 - El futuro de la web
Html5 - El futuro de la webHtml5 - El futuro de la web
Html5 - El futuro de la web
 
Sacándole el jugo a apache
Sacándole el jugo a apacheSacándole el jugo a apache
Sacándole el jugo a apache
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernes
 
JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4  JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4
 
Apache: Servidor Web Seguro (HTTPS)
Apache: Servidor Web Seguro (HTTPS)Apache: Servidor Web Seguro (HTTPS)
Apache: Servidor Web Seguro (HTTPS)
 
Webinar - Radiografía actual del lenguaje PHP
Webinar - Radiografía actual del lenguaje PHPWebinar - Radiografía actual del lenguaje PHP
Webinar - Radiografía actual del lenguaje PHP
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jsp
 
Apache3 christiany victor
Apache3 christiany victorApache3 christiany victor
Apache3 christiany victor
 

Destacado (7)

Capybara
CapybaraCapybara
Capybara
 
Hudson
HudsonHudson
Hudson
 
Introduction to test programming
Introduction to test programmingIntroduction to test programming
Introduction to test programming
 
SCRUM
SCRUMSCRUM
SCRUM
 
Coaching
CoachingCoaching
Coaching
 
BDD
BDDBDD
BDD
 
Cucumber
CucumberCucumber
Cucumber
 

Similar a High performance Web Sites

C:\fakepath\optimizacion
C:\fakepath\optimizacionC:\fakepath\optimizacion
C:\fakepath\optimizacionGonzalo C.
 
0094 rodrigo zubeldía alphasoluciones
0094 rodrigo zubeldía alphasoluciones0094 rodrigo zubeldía alphasoluciones
0094 rodrigo zubeldía alphasolucionesGeneXus
 
Puntos clave para optimizar Wordpress by Raiola Networks
Puntos clave para optimizar Wordpress by Raiola NetworksPuntos clave para optimizar Wordpress by Raiola Networks
Puntos clave para optimizar Wordpress by Raiola NetworksRaiola Networks
 
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Martin Siniawski
 
Front-end: Diseñar webs rápidas, flexibles y potentes
Front-end: Diseñar webs rápidas, flexibles y potentesFront-end: Diseñar webs rápidas, flexibles y potentes
Front-end: Diseñar webs rápidas, flexibles y potentesRomán Hernández
 
Charla betabeers optimización y rendimiento en Wordpress - Marcos Ramajo
Charla betabeers optimización y rendimiento en Wordpress - Marcos RamajoCharla betabeers optimización y rendimiento en Wordpress - Marcos Ramajo
Charla betabeers optimización y rendimiento en Wordpress - Marcos RamajoMarcos Ramajo
 
Presentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoPresentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoFernando Serer
 
Charla web performance optimization
Charla   web performance optimizationCharla   web performance optimization
Charla web performance optimizationEsteban Tundidor
 
Workshop "Técnicas de optimización web" en Webprendedor 2011
Workshop "Técnicas de optimización web" en Webprendedor 2011Workshop "Técnicas de optimización web" en Webprendedor 2011
Workshop "Técnicas de optimización web" en Webprendedor 2011Rodrigo Ayala
 
Aspnet40 Cache Extensibility
Aspnet40 Cache ExtensibilityAspnet40 Cache Extensibility
Aspnet40 Cache ExtensibilityChristian Strevel
 
Optimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBF
Optimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBFOptimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBF
Optimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBFDarío BF
 
Marcos quesada caching_sf2
Marcos quesada caching_sf2Marcos quesada caching_sf2
Marcos quesada caching_sf2symfony_bcn
 
Aceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPAceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPJuan Belón Pérez
 
Aceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHPAceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHPJuan Belón Pérez
 
Aceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPAceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPJuan Belón Pérez
 

Similar a High performance Web Sites (20)

C:\fakepath\optimizacion
C:\fakepath\optimizacionC:\fakepath\optimizacion
C:\fakepath\optimizacion
 
0094 rodrigo zubeldía alphasoluciones
0094 rodrigo zubeldía alphasoluciones0094 rodrigo zubeldía alphasoluciones
0094 rodrigo zubeldía alphasoluciones
 
Puntos clave para optimizar Wordpress by Raiola Networks
Puntos clave para optimizar Wordpress by Raiola NetworksPuntos clave para optimizar Wordpress by Raiola Networks
Puntos clave para optimizar Wordpress by Raiola Networks
 
Performance en Drupal 7
Performance en Drupal 7Performance en Drupal 7
Performance en Drupal 7
 
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
 
Front-end: Diseñar webs rápidas, flexibles y potentes
Front-end: Diseñar webs rápidas, flexibles y potentesFront-end: Diseñar webs rápidas, flexibles y potentes
Front-end: Diseñar webs rápidas, flexibles y potentes
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
Charla betabeers optimización y rendimiento en Wordpress - Marcos Ramajo
Charla betabeers optimización y rendimiento en Wordpress - Marcos RamajoCharla betabeers optimización y rendimiento en Wordpress - Marcos Ramajo
Charla betabeers optimización y rendimiento en Wordpress - Marcos Ramajo
 
Presentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoPresentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del Mediterráneo
 
Charla web performance optimization
Charla   web performance optimizationCharla   web performance optimization
Charla web performance optimization
 
Workshop "Técnicas de optimización web" en Webprendedor 2011
Workshop "Técnicas de optimización web" en Webprendedor 2011Workshop "Técnicas de optimización web" en Webprendedor 2011
Workshop "Técnicas de optimización web" en Webprendedor 2011
 
Aspnet40 Cache Extensibility
Aspnet40 Cache ExtensibilityAspnet40 Cache Extensibility
Aspnet40 Cache Extensibility
 
Servidor web
Servidor webServidor web
Servidor web
 
Optimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBF
Optimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBFOptimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBF
Optimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBF
 
La Caché
La CachéLa Caché
La Caché
 
Html5 g@tv
Html5 g@tvHtml5 g@tv
Html5 g@tv
 
Marcos quesada caching_sf2
Marcos quesada caching_sf2Marcos quesada caching_sf2
Marcos quesada caching_sf2
 
Aceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPAceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHP
 
Aceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHPAceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHP
 
Aceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPAceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHP
 

Último

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 

Último (10)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

High performance Web Sites

Notas del editor

  1. - Moviendo los scripts al final permite una renderización progresiva y consigue una mayor ejecución de la descarga paralela.
  2. - Moviendo los scripts al final permite una renderización progresiva y consigue una mayor ejecución de la descarga paralela.
  3. El mayor impacto en el tiempo de respuesta viene dado por el número de componentes. Cada componente genera una HTTP request (cuando la cache está vacía o incluso cuando no está completamente llena).
  4. - En lugar de dejar en las manos del usuario que tenga que modificar el atributo network.http.max-persistent-connections-per-server del cliente navegador, es mejor que los ingenieros utilicen alias DNS. - Un estudio hecho para Yahoo! Muestra que si se utilizan más de dos alias el rendimiento es peor.
  5. Una razón es pq el script puede utilizar document.write para modificar la página. Por esta razón el navegador se espera a que la página esté compuesta adecuadamente. También para garantizar que los scripts se ejecuten en el orden correcto. Solución: ponerlos al final de la página.
  6. - La primera vez que se evalúa la expresión CSS, el javascript establece la propiedad explícitamente. De esta manera aunque se haga scroll o se mueva el ratón no se vuelve a evaluar.
  7. Evita la evaluación de la CSS expression durante eventos que no están relacionados. Interner Explorer no soporta la propiedad CSS min-width. Esta solución arregla el ancho de la página en el evento onresize.
  8. Las llamadas internas pueden ser más rápidas para ciertos casos ya que el estilo interno hace un http request por 3 (html, css, javascript) del externo. Pero si se cachea el css/js externos, el html será mucho más ligero y no habrá tantas http request.
  9. A menos archivos mejor. Un solo archivo hace solo una http request pero la primera vez que entra el usuario se descargará mucha información. Categorizar el site y hacer un archivo para cada categoría.
  10. - Casos en los que la home va a ser la primera página de muchas visitas a otras páginas. - Mezcla la interna con la externa. - La interna para la home y al cargar la home descarga los externos para posteriores páginas.
  11. Si el navegador supiera si un componente está en caché o no podría tomar la decisión de incluirlo interno o externo. Si está en caché sería externo sino sería interno. Esto lo hace inicializando la cookie en el estilo anterior. En el doOnload.
  12. time-to-live (TTL) Mientras el navegador tenga en caché lo que busca no va a preguntar al SO. Si el SO no puede satisfacer la petición del navegador, mandará una petición al servidor ISP, y aquí es donde se puede producir el aumento de tiempos. Por desgracia, las ips cambian, asi que hay que establacer una tiempo periódico donde se vacíe esta caché.
  13. El servidor devuelve junto con el registro DNS solicitido un TTL para esa petición, para indicar al cliente el periodo que la petición debe estar en caché. El sistema operativo toma este valor, pero el cada navegador establece sus propios TTL. Además de esto la propiedad Keep-Alive del protocolo HTTP puede sobre escribir los valores tanto del servidor como del navegador. Debido al alto número de usuarios de estos sites, estas compañías han decido poner unos TTL bajos para que en caso de fallo se redirija rápidamente a un servidor dns alternativo.
  14. IE: -Keep-Alive viene dado por el protocolo HTTP 1.0 donde se incluyó para poder realizar conexiones persistentes. Se puede indicar en el navegador o en el servidor. Tecnicamente en HTTP 1.1 Connection: Keep-Alive no es necesario. -ServerInfoTimeOut: indica que incluso sin el keep-alive, si el usuario hace una petición del mismo dns cada 2 minutos (sin ningún fallo en la petición), no hara falta de volver a enviar una dns lookup, incluso si has estado realizando peticiones cada 2 minutos durante más de 30 minutos tampoco hará falta. Esto es peligroso, pq si alguien actualiza su ip y el usuario sigue haciendo peticiones cada 2 minutos no refrescará al nuevo DNS. Firefox: -Al poner que la cache expire en un minuto incrementará el número de peticiones dns. -Poniendo solo 20 entradas en la cache perjudicará a los usuarios que hagan muchas visitas.
  15. Si la caché está vacía en el cliente, tendrá tantas peticiones DNS como hostnames tenga la web que solicita. Reducir el número de hostnames aumenta el número de descargas paralelas. Reducir las peticiones DNS reduce el tiempo de respuesta pero aumentando el número de descargas paralelas incrementa el tiempo.
  16. Es la práctica de eliminar caracteres innecesarios del código. Eliminar comentarios, espacios, nuevas líneas,tabs,etc. Al eliminar caracteres el peso de la descarga se reduce y por tanto el tiempo de descarga también.
  17. Problemas: - Al ser más complejo es más sensible a que se produzcan errores. - A veces elimina simbolos del javascript que deben permanecer. - Al ser más complejo es difícil de hacerle un debug.
  18. JSMin utiliza minimización y el Dojo Compressor ofuscación. Lo mejor es combinar la técnica de Gzip de la regla 4 y la minimización. Aplicar minimización a CSS es más fácil ya que no suelen llevar tantos comentarios ni espacios.