Skip to Content »

Acelerar carga web con PHP

  • 24/01/2008
  • 11:46 pm
  • unijimpe

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.

  1. require_once('class.compressor.php');
  2. $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:

  1. $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:

  1. <?php
  2. require_once('class.compressor.php');
  3. $compressor = new compressor('css,javascript,page');
  4. ?>
  5. <title>Ejemplo de class.compressor.php</title>
  6. <link href="styles.css" rel="stylesheet" type="text/css">
  7. <script type="text/javascript" src="js/mootools.js"></script>
  8. <script type="text/javascript" src="js/swfobject.js"></script>
  9. <script type="text/javascript" src="js/functions.js"></script>
  10. </head>
  11. <!--código html de nuestra web-->
  12. </body>
  13. </html>
  14. <?php
  15. $compressor->finish();
  16. ?>

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.

Posts Relacionados

Total de Comentarios: 8

Publicidad
pablo
25/01/2008
8:47 am

puedes escribir un post integrando el compresor con wordpress?

mcalons
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

25/01/2008
7:36 pm

Impresionante lo voy a probar! :D

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
09/02/2008
2:18 pm

Funcioná con WordPress???

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 [...]

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

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?

Enviar Comentario

(*)

(*)