Gostaria de permitir que as páginas continuem se beneficiando do mecanismo de cache do Drupal 8 para usuários anônimos, exceto por blocos específicos que devem ser atualizados a cada atualização de página, sabendo que são gerados a partir de Views.
É tecnicamente possível? Quão?
Respostas:
O que esse bloco de visualizações mostra?
O D8 possui tags e contextos de cache que invalidarão automaticamente o bloco se algo mudar.
Portanto, se você tiver uma lista de nós, toda vez que um nó for adicionado ou atualizado, esse bloco será atualizado, mas até então, a versão em cache será usada. O que é muito melhor do que reconstruir em todas as páginas.
Também funciona com o cache da página; essas páginas também serão atualizadas automaticamente.
Muitas coisas funcionam apenas com o cache imediato, sem a necessidade de configurações manuais.
Editar (respondendo ao comentário):
Aleatório com o plugin de classificação aleatória? Isso deve marcar automaticamente esse bloco como não armazenável em cache. Isso, no entanto, não afeta o módulo de cache da página. Agora existe um novo módulo de cache dinâmico de páginas smartcache / dinâmico, mas ele estará disponível apenas na próxima versão beta (ou RC!). Eventualmente, isso permitirá armazenar em cache o restante da página e criar essa parte.
Mas um caso como esse provavelmente é melhor implementado usando javascript. Se houver apenas alguns nós, você poderá exibi-los todos, ocultos por padrão e tornar aleatoriamente um deles visível. Ou solicite um URL com javascript que retorne um anúncio aleatório ou, melhor ainda, visite um aleatório de N URLs que retornem um anúncio (por exemplo, retornando uma lista de URLs e escolhendo um deles. Você pode até fazer isso diretamente para o URL da imagem .
fonte
Se esse for um bloco personalizado, você poderá usar a API de cache e definir a idade máxima do cache como 0, por exemplo,
Se for um bloco existente, você poderá alterá-lo para adicioná-lo à matriz de renderização.
fonte