Cache

Este guia descreve os tipos de cache suportados pelo Chromium e mostra como trabalhar com eles.

O Chromium suporta os seguintes tipos de cache:

  • HTTP cache
  • Blink cache
  • HTML5 AppCache

Quando qualquer request de recurso é efetuado a partir de uma página, ele passa primeiro pelo carregador do Blink e pela cache do Blink. Um request ao processo do navegador pode ou não ser emitido a partir daí. À medida que passa pela pilha de rede do browser, chega à cache HTTP (disco ou memória). Não existe comunicação explícita de uma página com o cache.

A AppCache HTML5 é utilizada explicitamente por uma página Web. Ela armazena dados independentemente das outras caches.

Cache HTTP

Por padrão, a cache HTTP armazena os recursos obtidos da Web num disco ou na memória. O próprio Chromium decide como colocar os recursos em cache para um desempenho ótimo.

A cache de memória armazena e carrega os recursos de e para a memória do processo - RAM. Trata-se de uma forma rápida mas não persistente. O conteúdo está disponível apenas até fechar o Browser.

A cache do disco é persistente. Os recursos armazenados em cache são armazenados e carregados de e para o disco.

No Windows, a cache de disco é armazenada na pasta Cache no diretório Arquivos de Usuário e pode ter o seguinte aspeto:

Users\<user_name>\AppData\Local\JxBrowser\browsercore-<version>\UserData\Cache\

No macOS e no Linux, a cache de disco é armazenada no diretório temp do usuário.

No macOS, pode ter o seguinte aspecto:

/var/folders/jc/8cmxmwhn5w99b_2lhz78k46w0000gq/T/UserData/Cache/

On Linux:

/tmp/UserData/Cache

Modo de navegação anônima

No modo Anônimo o Chromium armazena os recursos apenas na memória e não utiliza o disco. Os recursos em cache só ficam disponíveis até que o Profile seja apagado ou o Engine seja fechado.

Tamanho da cache HTTP

O tamanho padrão é calculado na hora de início. Ele depende do espaço disponível em disco no volume onde a cache está localizada.

É possível configurar o tamanho da cache HTTP utilizando uma opção apropriada ao construir o Engine. Por exemplo, para definir um limite de 32 MB, utilize o seguinte código:

Engine engine = Engine.newInstance(EngineOptions.newBuilder(...)
        .diskCacheSize(33554432)
        .build());
val engine = Engine.newInstance(EngineOptions.newBuilder(...)
        .diskCacheSize(33554432)
        .build())

Se o tamanho da cache do disco for zero, será calculado e utilizado automaticamente um valor predefinido.

Limpar a cache HTTP

Para limpar a cache HTTP associada a um Profile específico e esperar até que todas as entradas da cache estejam marcadas para exclusão:

profile.httpCache().clear().join();
profile.httpCache().clear().join()

Utilizando o método Engine.httpCache() você obterá o serviço HttpCache para o perfil padrão.

Go Top