2010-04-30 4 views
2
  1. Je commence nouveau site web et va inclure plusieurs JS libs et aimerait savoir comment modèle de fichier .htaccess devrait ressembler avec la mise en cache des médias et des fichiers JS sur?Mise en cache de fichiers côté serveur Apache via .htaccess?

  2. Ce qui est meilleur pour la compression, GZip ou Deflate?

  3. Est-ce une solution meilleure/plus rapide de servir ces librairies JS sur Google CDN peut-être alors localement?

Je demande question CDN depuis certains des scripts ont servi de GoogleCDN vont potentiellement mettre à jour et éventuellement briser la mise en page du site, donc je pensais que ce serait mieux pour moi de les héberger localement et cache via serveur web si son aller travailler avec la même vitesse/presque-même.

+0

vraiment? n'importe qui? – dzhi

+0

1. Vous devrez être plus précis sur le type de cache que vous avez en tête. Avez-vous l'intention d'utiliser mod_cache ou simplement définir des en-têtes HTTP pour les fichiers media et js? 2. Vous pouvez probablement lancer une recherche sur le SO pour la réponse sur deflate vs gzip, ou lire des articles de Wikipédia sur les différences. Btw, gzip est basé sur l'algorithme deflate. – Boris

Répondre

0

(Désolé représentant est trop faible pour poster un commentaire)

En ce qui concerne l'inclusion de plusieurs fichiers js il y a certaines choses que vous devez garder à l'esprit re la construction du site. Tout d'abord, chacun de ces fichiers est une demande qui aura une certaine surcharge sur votre serveur si vous les servez. Même sur un CDN, ce sera toujours une demande que le client doit faire. Si vous avez configuré votre site avec un cookie, chaque requête aura un peu plus de frais généraux à cause de cela. Je mentionne cela à cause de votre mise en cache parce que vous avez demandé à re CDN. Ce que je veux dire, c'est que vous devriez d'abord considérer d'où vous allez servir le contenu et ensuite la mise en cache. Personnellement, j'ai mis en place une seconde sous-URL pour servir ce type de contenu, donc static.website.com. De cette façon, le contenu a moins de frais dans la demande et vous pouvez profiter des téléchargements parellels. Donc, le Google CDN, oui sûr si vous avez le plus de choses là-bas. Si vous avez peur de le changer ou si vous voulez simplement l'héberger localement, je vous recommande de configurer un domaine sans cookie à cette fin.

Cela m'amène à la mise en cache et à la compression. Si vous avez beaucoup de fichiers, vous pouvez envisager de les combiner tous en un seul et servir cela. Ce que je fais, c'est obtenir les 15 fichiers js que nous utilisons, les mettre tous dans un fichier et hacher le fichier et faire le hachage le nom du fichier. (Notez que c'est une petite chose que j'ai écrite pour l'étape de construction avant le déploiement). De cette façon, si l'un des fichiers change, le hachage change et vous diffuserez le nouveau contenu immédiatement. Votre danager de mettre en cache les fichiers js par exemple une année est que vous n'avez aucun contrôle sur l'ordinateur client pour obtenir le nouveau fichier, sauf si vous changez le nom de celui-ci. Personnellement, comme je l'ai dit, je combine tous les fichiers js en un, puis les compresser en un fichier min (ajax minifier), et Utiliser ça. Je fais de même pour les fichiers CSS. Cela se trouve sur un sous-domaine et y est servi.

Dans apache je les suivantes:

# Enable memory caching 
CacheEnable mem/
# Limit the size of the cache to 50 Megabyte 
MCacheSize 51200 
AddOutputFilterByType DEFLATE application/x-javascript 
ExpiresActive On 
ExpiresDefault "access plus 1 second" 
# hashed file so safe for long out cache 
ExpiresByType text/javascript "access plus 1 years" 

Avec une charge de merde plus ... mais vous voyez l'idée

note finale, si vous construisez un site mobile, vous devez vraiment Rappelez-vous la chose clé étant de garder le coût de la bande passante faible. Comment cela affecte-t-il la réponse? Eh bien pour mon site mobile, je n'ai que 2 ou 3 fichiers js personnalisés que je sers de la même manière, mais pour les jquery-mobile, je le sers du repo officiel. Pourquoi? parce que le mobile du client l'aura déjà mis en cache et, par conséquent, il économisera de la bande passante pour eux. Pour un ordinateur de bureau, je m'en fous, mais cela fait une grande différence dans le monde mobile.

J'espère que cette aide, laissez-moi savoir si vous avez besoin plus d'informations sur quelque chose,

Vive

Robin

Questions connexes