1) mod_gzip/mod_deflate! Esta es una solución tan fácil que me sorprende que no esté activada de forma predeterminada.
2) Juegue trucos con su URL para que pueda decirle a los navegadores que guarden en caché sus archivos JS y CSS para siempre. En otras palabras, construir de la URL para que parezca:
http://www.yourdomain.com/js/mad_scriptz-v123.js
A continuación, utilice mod_rewrite y la tira a cabo el "-v123":
<IfModule mod_rewrite.c>
# http://www.thinkvitamin.com/features/webapps/serving-javascript-fast
RewriteEngine on
RewriteRule ^/(.*)\-v[0-9.]+\.(css|js|gif|png|jpg|xap)$ /$1.$2 [L]
</IfModule>
Ahora Apache va a ir en busca de "/js/mad_scriptz.js "... Cada vez que cambie su contenido estático, simplemente aumente el número de versión para obligar a los navegadores a volver a cargar el contenido. Normalmente tengo una variable de plantilla que contiene un número de versión global al que todo se vincula. No es el más eficiente, pero funciona para mis propósitos. Si puede vincular el número de versión a su sistema de compilación o un hash del archivo, eso sería extra dulce.
Obtener mod_expires tan toda su materia estática expira años a partir de ahora:
<IfModule mod_expires.c>
ExpiresActive On
# all in seconds...
ExpiresByType image/x-icon A2592000
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
ExpiresByType application/javascript A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType application/x-shockwave-flash A2592000
ExpiresByType application/pdf A2592000
ExpiresByType text/css A2592000
ExpiresByType application/rdf+xml A1800
</IfModule>
Actualización: Se ha observado que no todos los navegadores o los motores de búsqueda como contenido gzip. No lo enciendas ciegamente como sugiero arriba. Asegúrate de no alimentar los navegadores antiguos gzip incluso si lo aceptan (algunos se pondrán molestos con javascript comprimido). La documentación para mod_gzip y mod_deflate ambos tienen ejemplos que deberían funcionar bien (supongo que lo hacen, o la gente los enviaría por correo electrónico con los cambios :-).
También debo mencionar que, según mi experiencia, si tiene un proxy inverso entre sus servidores Apache mod_gzip y el mundo, debe tener cuidado. Squid 2.6 engañará a menudo a Apache para que no haga gziping cuando debería y, lo que es peor, almacenará en caché las versiones sin comprimir y las enviará a navegadores que pueden manejar contenido gzip. No sé si 3.0 corrige esto y no sé si algo está mal en mi configuración (lo dudo). Sólo tenga cuidado :-)
Dicho eso. Encenderlo. En serio :-)
¿Qué tan rápido es "rápido"? ¿Qué tipo de carga esperas realmente? ¿Cómo se va a alojar la aplicación? ¿Qué vas a estar haciendo? Hay una diferencia mundial entre escribir algo que es "lo suficientemente rápido" y algo que puede manejar cargas a escala de Facebook. –