2010-03-11 7 views
2

Je génère une sortie avec php. J'ai lu sur la mise en cache des éléments HTML (par exemple, des images, du texte) dans le navigateur de sorte qu'ils ne doivent pas être rechargés.Comment indiquer au navigateur de mettre en cache un élément spécifique dans un document HTML

Cependant, je n'ai pas trouvé les bonnes directions sur la façon de le faire. C'est comme "cachez simplement les éléments que vous voulez et vous avez terminé!" - grande, mais comment puis-je mettre en cache quelque chose comme ceci:

<div id="ubiquitous_heading"> 
    <img src="logo.png" alt="logo" /> 
    <span>Welcome to this dummy website</span> 
</div> 

Y at-il un en-tête qui peut cibler des éléments HTML et désigner quoi le cache et ce qui ne? Je fais référence à quelque chose de structuré comme:

#ubiquitous_heading { 
    cache: yes; 
} 
#no_cache_please { 
    cache: no; 
} 

Est-il possible de le faire? Que veulent dire exactement les gens quand ils disent "you can cache a specific element in your HTML?" en se référant à chaque élément (y compris les liens vers css, js).

Merci de m'avoir éclairci.

Répondre

2

Vous ne pouvez mettre en cache que les réponses aux requêtes HTTP, et non des parties de celles-ci. En théorie, vous pouvez placer un en-tête partagé dans un cadre et le mettre en cache, mais le plus souvent, ce sera plus compliqué et cela n'en vaut pas vraiment la peine. Ce que vous pouvez et devrait cache est des images, des scripts et des feuilles de style; généralement, toutes les ressources externes qui sont statiques et récupérées dans une requête distincte.

+0

Je comprends, mais pourriez-vous s'il vous plaît élaborer sur la façon de mettre en cache ces images, js, fichiers CSS? est-ce quelque chose comme ? – Gal

+0

Vous auriez besoin de faire cela du côté serveur. Dans Apache, vous pouvez utiliser 'mod_expires' ou similaire via la configuration du serveur ou' .htaccess', ou vous pouvez écrire les en-têtes dynamiquement dans une langue de programmation (par exemple 'header()' en PHP). –

2

Seules les ressources peuvent être mises en cache. Votre demande Web standard a les ressources suivantes:

  • page html (s)
  • fichiers de script
  • stylesheets
  • images
  • polices (je l'espère à venir bientôt!)

Tous Tous ces éléments peuvent être mis en cache. Toutefois, vous ne pouvez pas mettre en cache une partie d'une ressource au niveau du navigateur (par exemple, une règle dans une feuille de style ou un élément dans une page HTML).

Questions connexes