Esta actualización es mucho más rápida ya que he tenido la suerte de tener mucho trabajo hecho. Los dos siguientes pasos que nos indicaba YSlow, añadir la cabecera Expires y comprimir el contenido, ya los teníamos bastante avanzados gracias al paso anterior. Pero aún quedaban algunos elementos de la página que no cumplían esta regla, básicamente todos lo que no pude mover a la CDN.
Para solucionar el problema rápidamente he modificado el fichero ‘gzip-header-css.php’ que venía incluido en el tema K2 que uso, y lo he dejado así:
-
<?php
-
// Browser check. props phpBB
-
$browser = ( !empty( $_SERVER['HTTP_USER_AGENT'] ) ) ? strtolower( htmlspecialchars( ( string ) $_SERVER['HTTP_USER_AGENT'] ) ) : '';
-
-
// check to see if the user has enabled gzip compression in the WordPress admin panel
-
if( ( $browser and strpos( $browser, 'msie 6.0') === false) and extension_loaded( 'zlib' ) and !ini_get( 'zlib.output_compression' ) and ini_get( 'output_handler' ) != 'ob_gzhandler' and ( ( version_compare( phpversion(), '5.0', '>=') and ob_get_length() == false) or ob_get_length() === false ) ) {
-
ob_start( 'ob_gzhandler' );
-
}
-
-
// The headers below tell the browser to cache the file and also tell the browser it is JavaScript.
-
header( "Cache-Control: public" );
-
header( "Pragma: cache" );
-
-
$ExpStr = "Expires: " . gmdate( "D, d M Y H:i:s", strtotime( '+1 year' ) ) . " GMT";
-
$LmStr = "Last-Modified: " . gmdate( "D, d M Y H:i:s", filemtime( $_SERVER['SCRIPT_FILENAME'] ) ) . " GMT";
-
-
header( $ExpStr );
-
header( $LmStr );
-
?>
Lo que he hecho ha sido quitar la parte que indicaba el Content-Type, para poder indicar CSS y JS en función de lo que vaya a necesitar, y cambiar la forma de calcular la fecha de Expires para usar un método más intuitivo.
Añadiendo el include de este fichero a las tres peticiones que faltaban, conseguimos una A en estos dos test y una puntuación de 88 en el total, que ya empieza a estar bastante bien. La media del tiempo de carga con la caché vacía ha subido casi un segundo quedándose en unos 7 segundos, pero la media usando la caché ha bajado casi un segundo hasta llegar a los 3 segundos. De momento no hemos mejorado apenas, pero quedan dos puntos que nos pueden ayudar bastante: minificar el código Javascript y pasar la carga de los ficheros .js al final del documento.







0 Respuestas a “Optimizar la carga de una web (y III)”
Añade un Comentario