Estou interessado no cache de memória do Chrome vs cache de disco? Eu uso o webpack, plugin de pedaços comuns e gerei todos os meus arquivos com chunkhash.
Como a memória difere do cache de disco. Quando recarrego minha página, alguns arquivos são carregados do cache de memória e outros do cache de disco (bundle.js e image.jpg do cache de memória e css do cache de disco). Às vezes é diferente. Podemos controlar isso, escolher o que é carregado de onde? O cache de memória parece ser mais rápido que o cache de disco.
google-chrome
caching
webpack
Igor-Vuk
fonte
fonte
Respostas:
Como seus nomes diziam:
"Memory Cache" armazena e carrega recursos de e para a memória (RAM). Então, isso é muito mais rápido, mas não é persistente. O conteúdo está disponível até você fechar o navegador.
"Cache de disco" é persistente. Os recursos em cache são armazenados e carregados de e para o disco.
Teste simples: abra as ferramentas / rede do desenvolvedor do Chrome. Recarregue uma página várias vezes. A coluna da tabela "Tamanho" informará que alguns arquivos são carregados "do cache de memória". Agora feche o navegador, abra Developper Tools / Network novamente e carregue a página novamente. Todos os arquivos em cache são carregados "do cache de disco" agora, porque o cache de memória está vazio.
fonte
O Chrome implementa caches em muitos níveis de abstração. No núcleo está o cache HTTP (navegador) - um backend para outros mecanismos de cache. Geralmente os caches podem ser divididos em:
Cache HTTP
Cada solicitação feita pela rede é intermediada pelo cache HTTP aderindo ao RFC . Quando solicitado pela primeira vez, o cache é sobrescrito. Os recursos são codificados pelo url de origem.
Cache do Service Worker
Para lidar normalmente com falhas de conexão de rede, você pode usar Service Workers . Os caches e o armazenamento em cache seriam retirados do disco novamente.
Blink Cache
O Blink usa Http Cache como backend em dois modos de criação - na memória e simples (sistema de arquivos). Qual é usado depende do limite definido globalmente para caches de quanta memória eles podem ocupar. Além disso, o cache do renderizador atual obtém o maior compartilhamento. O que é armazenado em cache são fontes, imagens e scripts. Se o uso de memória global atingir algum limite especificado, o backend do sistema de arquivos será usado.
Forçando no cache de memória
Se quiser que seus arquivos sejam servidos pelo mecanismo padrão de substituição de memória, você pode implementar seu próprio Service Worker. Usando Arquivo Api, os recursos podem ser lidos e armazenados no objeto na memória. Então, substituir o evento fetch suprimiria as leituras de rede e de arquivo com o conteúdo fornecido a partir deste objeto global.
fonte