Trilhos - etags vs. página em cache (cache de arquivo)
-
06-07-2019 - |
Pergunta
O que seria algumas vantagens de usar etags / obsoleto? / Fresh_when? em vez de página de cache (em um cache de arquivo)?
Apache trata automaticamente etags para arquivos estáticos, mas mesmo que não o fez, página cache ainda seria melhor desde que o aplicativo Rails nem sequer obter chamado.
Assim, no que casos que eu iria usar os métodos fornecidos pelo Rails (obsoleto? / Fresh_when?)?
Solução
Eles são realmente de cortesia. Etags / fresh_when etc. ajuda você jogar bonito com caches downstream (como seu próprio Varnish / casos Squid ou Rack :: Cache ou o cache do navegador ou dos Servidores ISP Proxy ...)
Página cache evita que você bater seus trilhos empilhar inteiramente por causa Apache / seu servidor servir o arquivo, por isso há pesquisas DB está feito. Mas você tem que lidar com a expiração do cache para manter o fresco cache.
Usando etags / condicional começa, você não economizar tempo de processamento muito desde que você ainda precisa para obter todos os registros usados ??na página:
def show
@article = Article.find(params[:id])
@feature = Feature.current
fresh_when :etag => [@article, @feature]
end
no caso em que o usuário tem uma página atual, ele poupa-lhe algum tempo de processamento e largura de banda necessária para enviar para baixo a página.
Outras dicas
Outro uso que me ocorreu foi que você poderia ainda processar algumas informações antes de deixá-mão Rails o "304 Not Modified" cabeçalho. Como se você quer gravar acessos a uma página.
Uma coisa que vem à mente é que fresh_when
vai ainda poupar algum prestação, mesmo se você limpou todo o cache de página. Aqui você estaria usando tanto em tandem.
Estou curioso sobre outras respostas também.