

- Reducir el peso de la página, por ejemplo, reduciendo el tamaño de las imágenes o haciendo el código html más simple.
- Utilizar versiones minimizadas de frameworks javascript y css.
- Combinar archivos de javascript y css. Para hacer menos peticiones.
- Usar CDNs que sirvan los javascript de tal modo que el usuario no tenga que descargarlos si ya los tiene cacheados de otras peticiones o accesos a otras páginas.
- Y la que es de interés en esta entrada, reducir número de peticiones también en los iconos usados en la página usando la técnica de crear sprites.
Para hacer la combinación de las imágenes hay herramientas en internet que nos permiten realizalo de forma sencilla y rápida, como este Generador de Sprite CSS. El resultado que obtendremos de esta herramienta será una salida de CSS y una imagen con la combinación de todas las que queremos.
Una biblioteca de iconos muy usados son los iconos silk de la página fam fam fam pero estos iconos vienen separados cada uno en su propio archivo y la mayoría tiene un tamaño de medio KiB asi que usando un sprite podemos beneficiarnos de la ventajas usando esta técnica. Lo primero que haremos es obtener y poner en una carpeta los iconos que queramos tener en un sprite, posteriormente crearemos un archivo zip, luego usaremos la herramienta de sprites que queramos.
Parte del CSS que obtenemos es:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.sprite-silk { | |
background: url(sprite-silk.png) no-repeat top left; | |
} | |
.sprite-silk-accept{ background-position: 0 0; width: 16px; height: 16px; } | |
.sprite-silk-add{ background-position: 0 -17px; width: 16px; height: 16px; } | |
.sprite-silk-anchor{ background-position: 0 -34px; width: 16px; height: 16px; } | |
.sprite-silk-application{ background-position: 0 -51px; width: 16px; height: 16px; } |
Posteriormente para usar el sprite el html de nuestra página sería, incluyendo el CSS que hemos obtenido y aplicando los estilos a una imagen que en el src tiene una imagen con un pixel transparente:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<title>Sprite</title> | |
<style type="text/css"> | |
.sprite-silk { | |
background: url(sprite-silk.png) no-repeat top left; | |
} | |
.sprite-silk-accept{ background-position: 0 0; width: 16px; height: 16px; } | |
.sprite-silk-add{ background-position: 0 -17px; width: 16px; height: 16px; } | |
.sprite-silk-anchor{ background-position: 0 -34px; width: 16px; height: 16px; } | |
.sprite-silk-application{ background-position: 0 -51px; width: 16px; height: 16px; } | |
</style> | |
</head> | |
<body> | |
<img src="pixel.png" class="sprite-silk sprite-silk-accept"/> | |
</body> | |
</html> |
Referencia:
http://es.spritegen.website-performance.org/
http://www.famfamfam.com/