Acelerando por 5 la carga de páginas realizadas con PHP
El título parece venta por TV. pero es cierto se puede acelerar y mucho la carga de páginas atacando 3 problemas fundamentales:
- La compresión de las páginas /css / js usando gzip.
- Reducir la cantidad de peticiones http realizadas al server.
- Colocando cabeceras de expiración en forma correcta.
Leon Chevalier de http://aciddrop.com se tomó el gran trabajo de realizar una clase de php que una vez instalada en sólo 3 líneas de texto nos permite atacar los 3 problemas a la vez.
Cómo lo hace? Usando las funciones de búferes de salida ob_* de php de esta manera abre un buffer con ob_Start() recupera todo la pagina html que estamos componiendo con el script, luego la procesa en busca de cadenas del tipo “script”, “link” y otras para obtener todas las llamadas a los js y los css. Una vez obtenida la lista de .js y .css junta todos archivos generando un archivo con nombre aleatorio (basado en md5() y unas cadenas extras.) . A la vez reemplaza en el código html las llamadas originales por las nuevas a los archivos “rejuntados”. De esta manera solo queda el archivo html, un archivo css y un archivo js.
En mi caso que uso prototypejs y scriptacoulus se nota mucho el cambio en la velocidad de carga. De 22 objetos cargados se pasa a 7, generando menos conexiones al server.
De todas manera el código está medio verde todavía ya que no funciona con error_reporting en E_ALL y tiene algunos bugs de variables no definidas o cambiadas de tipo.
De todas maneras vale la pena ver este trabajo:
http://aciddrop.com/2008/01/23/site-speed-boost-script-updated/
