Acelerar carga web con PHP

Compressor, es una clase escrita por Leon Chevalier de Acid Drop que permite acelerar la carga de nuestra web al unir y comprimir los archivos CSS y Javascript asociados a nuestro web.

Como se acelera la carga?
Para acelerar la carga de una web hay varios puntos a tener en cuenta:

  • Menos peticiones HTTP, es decir cargar menos archivos asociados a un web.
  • Agregar headers indicando que los archivos estáticos expiran en el futuro.
  • Utilizar compresión Gzip los elementos estáticos de una página.
  • Optimizar el tamaño de los CSS, Javascript y el HTML, por ejemplo eliminando espacios en blanco y saltos de línea en el código.

Todos estos criterios están implementados mediante la clase class.compressor.php la cual pueden descargarla en: Improve website load time by 500% with 3 lines of code. Hay que tener en cuenta que esta clase funciona con PHP 4 y si deseas utilizar la compresión de Javascript es necesario PHP 5.

Utilizando la Clase
El uso de esta clase es muy sencillo, lo primero es adjuntar la clase al inicio de nuestra página y luego crear una instancia del objeto compressor de la siguiente forma.

require_once('class.compressor.php');
$compressor = new compressor('css,javascript,page');

El segundo paso es colocar al final de la página una llamada al método finish el cual ejecuta la compresión necesaria, esto de la forma:

$compressor->finish();

Entonces si por ejemplo tenemos una determinada página que carga varios Javascript y un css incluyendo la clase para comprimir tendríamos el siguiente código fuente:

<?php
require_once('class.compressor.php');
$compressor = new compressor('css,javascript,page');
?>
<html>
<head>
<title>Ejemplo de class.compressor.php</title>
<link href="styles.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/mootools.js"></script>
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript" src="js/functions.js"></script>
</head>
<body>
<!--código html de nuestra web-->
</body>
</html>
<?php
$compressor->finish();
?>

Como pueden ver es muy sencillo y los resultados son muy buenos, si utilizan Firebug podrán ver cuando se ha ahorrado en la carga de la página seleccionada.

Comentarios Total 17 comentarios

pablo
Publicado: 25/01/2008 8:47 am

puedes escribir un post integrando el compresor con wordpress?

mcalons
Publicado: 25/01/2008 2:47 pm

Hola, me llego tu mail y entre y probel el script, el problema que le veo es que precisa permisos de escritura 777 para funcionar, por lo que tendremos un pequeño problema de seguridad.
Es inevitable en muchas ocasiones crear carpetas con permisos de escritura para subir imagenes, archivos, etc, pero ya se intenta que no sea facil su localizacion y si te generasen algun problema, pues eso, que sea una carpeta que no sea el root.

Esta clase está bien, pero si como se pretende es usarla para toda la web, supone también un problema de seguridad el que tengas que darle permisos de escritura CHMOD 777

En fin, como siempre interesante tu blog pero yo no aplicaría esta utilidad a mis webs.

Saludos

Mcalons

carlos lima
Publicado: 25/01/2008 7:36 pm

Impresionante lo voy a probar! :D

Moisés
Publicado: 29/01/2008 12:14 pm

Mcalons no la he probado aún pero … ¿ no bastaría con darle permisos de escritura para el usuario que ejecuta el servidor web ?

De todas formas para hacer aplicaciones para una intranet con muchos accesos también puede ser interesante.

Raul
Publicado: 09/02/2008 2:18 pm

Funcioná con WordPress???

Tiempo de Carga del website
Publicado: 11/02/2008 6:02 am

[…] encontrareis más métodos pero fundamentalmente me gustaría que mirarais el que explican en Unijimpe “acelerar la carga web mediante la clase class.compressor.php […]

zetman
Publicado: 23/03/2008 6:50 pm

Interesante artículo como todos los del blog, ahora me queda una duda, como anda el consumo de cpu al realizar estos menesteres?, es compensado con la reducción significativa, o hay un equilibrio entre ambos?..bueno habrá que probarlo

SoloSalsero
Publicado: 12/05/2008 11:56 am

Buen artículo y muy interesante información, pero… ¿Cómo se soluciona el problema entre las versiones de PHP?


[…] Acelerar carga web con PHP / unijimpe nos muestra y explica una clase PHP, Compressor, para comprimir los archivos CSS y Javascript asociados a nuestro web. […]

alej...
Publicado: 08/01/2009 4:31 am

Muy buen tip…

pero será posible implementar esto en Joomla ?

gracias de antemano, saludos.

Billigflug
Publicado: 04/04/2009 4:43 am

thank you bery much for your tips.
You have really saved my time. I was searching for a free tool that accelerates the loading of my website but hadn’t found the right
one. I have tried you code with my website, and I got predictable loading time.
Sorry I couldn’t write in Spanish, because I’m learning it just since 6 monthes. I hope you understand it.

unscorpio
Publicado: 26/05/2010 3:02 pm

me paso de c a B en yslow firebug grax man

Anime Online
Publicado: 29/08/2010 1:52 am

Muy buen aporte gracias

hugo
Publicado: 08/10/2010 4:06 pm

Hola Unijumpe, sabes, no he podido descargar el archivo desde el sitio oficial ni algun otro sitio, pues todos, como en tu caso linkean al sitio, esque baja un zip pero con error entonces pues no tiene el archivo necesario class.compresor.php me pregunto, si no es mucha molestia, si puedes porfavor poner en descarga dicho archivo aqui en tu blog???

De antemano gracias por tu atencion y tiempo prestado en este blog para apoyo de todos.

unijimpe
Publicado: 09/10/2010 4:35 pm

Hola Hugo, esta librería fue mejorada y renombrada a PHPSpeedy, para mas información de esta librería puedes leer http://aciddrop.com/php-speedy/ y puedes descargarlo en http://aciddrop.com/aciddrop/download/php_speedy_wp_0.5.2.zip

Dan
Publicado: 31/10/2010 3:41 pm

phpSpeedy ahora es solo un plugin para wordpress? como se usaría la nueva libraria en una pagina php que no sea de wordpress?
gracias unijimpe

unijimpe
Publicado: 01/11/2010 10:40 pm

Efectivamente en las ultims versiones PHP Speedy solo esta disponible como plugin para WordPress pero puedes encontrar una versión que puedes utilizar en cualquier website en http://aciddrop.com/2008/02/01/speeding-up-your-website-just-became-499-easier/

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)