Upload
juan-belon-perez
View
679
Download
1
Embed Size (px)
DESCRIPTION
Gracias a http://programadorphp.org/¿Cómo funciona la optimización en el framework zenphp?¿Cómo podemos optimizar nuestra web?Herramientas, utilidades,consejos, complementos del navegador,etc.
Citation preview
Mecanismos de optimización de peticiones en zenphp O como hacer webs que carguen más rápidamente Lo que contiene éste documento son algunas de las técnicas que usa el framework de aplicaciones zenphp. Algunas de ellas aún están en fase beta blog.zenphp.es 08/02/2008
::zenphp:: Optimización
Serie de tutoriales sencillos:II
Optimizando una web
Para optimizar y conservar el contenido de una
página web existen varias técnicas:
1. Comprimir/compactar el HTML generado
2. Comprimir/compactar javascript
3. Comprimir/compactar CSS
4. Usar rutas cortas para las imágenes y ficheros
5. Colocar CSS al principio del documento
6. Colocar el JavaScript al final del documento
7. Minimizar la resolución de DNS
8. Evitar redireccionar las páginas
Etc.
Seguir leyendo en el apartado de Soluciones a
nivel de código
¿Qué más debería saber?
Zenphp no hace Milagros, es decir, si un servidor
ha de procesar muchas peticiones es lógico que el
tiempo de compactar todos los ficheros de cada
aplicación para cada cliente sea muy alto ya que
compactar HTML necesita usar muchas
ejecuciones de expresiones regulares y filtros, cada
fichero javascript a comprimir es otra petición a
Apache,al módulo PHP que ejecuta el script que
hace posible la compresión, esto es posible que no
salga rentable a fin de cuentas ya que ESTAMOS
SOBRECARGANDO el servidor, por lo tanto, se
trata de encontrar el equilibrio ,hacer nuestras
pruebas con alta y baja carga para establecer el
umbral donde comprimir unas partes, usar la
caché en otras, compactar HTML en ciertas
peticiones,etc.
Componentes para Firefox que nos
ayudan a mantener eficiente el grado de
una página web son:
Firebug e YSlow!
Webs de ayuda
http://www.getfirebug.com
/
http://developer.yahoo.com
/yslow/
http://granadaphp.agenciaq
4.com/
Soluciones a nivel de código(algunas de ellas automáticas en zenphp):
Programas de ayuda
Uso de cabeceras de expiración
Cabeceras de peticiones
comprimidas con gzip (si el
servidor lo soportara) y Etags
Uso de un búfer PHP optimizado
Compresión de ficheros con Gzip
Compactación de HTML
Compactación JavaScript (con
PHP)
Compactación CSS
Minimización de JavaScript: todo
en un paquete comprimido
Evitar la duplicación de scripts
Más ideas sobre optimización
Si tienes más ideas o piensas que se ha
dejado algo sin poner por aquí, no hay
problema!, pásate por el foro:
[enlace al foro]
Personalizando los optimizadores
de eficiencia
Por supuesto puedes insertar tus propios
mecanismos para mejorar la experiencia de la carga
de un sitio web, es más, es altamente recomendable
que empieces por usar tu propia red de contenidos :
http://developer.yahoo.com/performance/rules.htm
l#cdn
Evitando redirecciones
Que no se os olvide poner en las rutas la barra al
final, ya que al redirigir la página web a un
www.loquesea.es/directorio se crea otra redirección
del servidor a la misma URL pero con la barra / al
final...y ésto es altamente ineficiente
Eliminando espacios de HTML,CSS,etc
En zenphp es posible utilizar compactadores que
utilizan expresiones regulares y eliminan espaciados
innecesarios, esto es muy aconsejable cuando el
fichero original tiene muchos espacios en blanco
pero no es tan bueno cuando se repite mucho ya
que se sobrecarga al servidor de operaciones de
recorte que no son realmente necesarias si hemos
diseñado bien el HTML,CSS,etc.
Sugerencias adicionales: caché
Hasta una aplicación AJAX puede usar caché.
Personalizando el AJAX de zenphp
Puedes insertar tus propios scripts AJAX pero
asegúrate de que estás usando las recomendaciones
aquí ofrecidas para que tu aplicación sea más
eficiente.El que una aplicación utilice la tecnología
AJAX (en zenphp no es un hack XD ) no quiere decir
que no utilicemos las herramientas disponibles para
comprimir y cachear el contenido...
Depurando
Con estos componentes de firefox podemos ver
el estado final del trabajo
Gráfico de eficiencia:
Componentes que bajan la eficiencia de una página
web por grado de mayor culpabilidad a menor
CSS
JS
CDN
Cabeceras
Gzip
Organización