web-dev-qa-db-fra.com

Chrome cache mémoire vs cache disque

Je suis intéressé par chrome cache mémoire vs cache disque? J'utilise webpack, le plugin common chunks et génère tous mes fichiers avec chunkhash.

Comment la mémoire diffère-t-elle du cache disque? Lorsque je recharge ma page, certains fichiers sont chargés à partir du cache mémoire et d'autres à partir du cache disque (bundle.js et image.jpg du cache mémoire et css du cache disque). Parfois c'est différent. Peut-on contrôler cela, choisir ce qui est chargé d'où? Le cache de mémoire semble être plus rapide que le cache de disque.

71
Igor-Vuk

Comme leurs noms l'ont dit:

"Cache en mémoire" stocke et charge les ressources depuis et vers la mémoire (RAM). C'est donc beaucoup plus rapide mais non persistant. Le contenu est disponible jusqu'à la fermeture du navigateur.

"Cache de disque" est persistant. Les ressources mises en cache sont stockées et chargées sur et depuis le disque.

Test simple: Ouvrez Chrome Outils du développeur/Réseau. Recharger une page plusieurs fois. La colonne "Taille" de la table vous indiquera que certains fichiers sont chargés "à partir du cache mémoire". Fermez maintenant le navigateur, ouvrez à nouveau Developper Tools/Network et chargez à nouveau cette page. Tous les fichiers en cache sont chargés "à partir du cache disque" maintenant, car votre cache mémoire est vide.

54
Ruwen

Chrome implémente les caches à plusieurs niveaux d'abstraction. Le cache HTTP (navigateur) est au cœur du système, un backend pour d’autres mécanismes de mise en cache. Généralement, les caches peuvent être divisés en:

  • Cache HTTP
  • Caches de travailleur de service
  • Cache clignotant

Cache HTTP

Chaque requête qui est faite sur le réseau est mandatée par HTTP Cache adhérant à RFC . Lorsque demandé pour la première fois, le cache est écrasé. Les ressources sont spécifiées par l'URL d'origine.

Cache du travailleur de service

Pour gérer correctement les échecs de connexion réseau, vous pouvez utiliser Service Workers . Les caches et le stockage en cache seraient à nouveau extraits du disque.

Blink Cache

Blink utilise le cache HTTP comme back-end dans deux modes de création: en mémoire et simple (système de fichiers). Lequel est utilisé dépend de la limite définie globalement pour les caches combien de mémoire ils peuvent prendre. De plus, le cache de rendu actuel obtient le plus grand nombre de partages. Ce qui est mis en cache sont les polices, les images et les scripts. Si l'utilisation globale de la mémoire atteint un seuil spécifié, le système de fichiers est utilisé.

Forçage dans la mémoire cache

Si vous souhaitez que vos fichiers soient servis à partir de la mémoire remplaçant le mécanisme par défaut, vous pouvez implémenter votre propre Service Worker. Avec File Api, les ressources peuvent être lues et stockées dans un objet en mémoire. Ensuite, remplacer l'événement fetch supprime les lectures sur le réseau et les fichiers contenant du contenu servi à partir de cet objet global.

8
Dominik G
  1. Le fichier CSS utilise le cache disque.
  2. <script> utilise le cache mémoire.
    • navigateur fermé, rouvrez-vous, utilisez le cache disque. puis le vider, utilisez le cache mémoire.
  3. document.createElement('script') utilise le cache disque.
0
饶建兵