Por que as mudanças em um arquivo são tão lentas? (Apache Tomcat)

1

Eu tenho um servidor Apache Tomcat 7. Se eu alterar um arquivo no servidor (por exemplo, folha de estilo, arquivo javascript ou qualquer arquivo simples / texto), por exemplo, usando o vim. Então, se eu for ao arquivo em um navegador da Internet, e pressionar F5 algumas vezes até ver a alteração real, terei que esperar (pressionando F5 a cada 500 ms) alguns segundos (~ 3 segundos) antes de ver o que acabou de mudar.

Assim, em suma: se um arquivo for alterado no servidor, eu o vejo ~ 3 segundos depois do lado do cliente. Então, em algum lugar tem que haver um cache, provavelmente do lado do servidor, já que eu uso o F5, que deve descartar o cache do lado do cliente. Então, como posso configurar um diretório no meu servidor Apache Tomcat para que ele não armazene em cache os arquivos?

Eu quero fazer isso porque criei um site simples baseado em Ajax / Servlet para conversar. Mas depois de digitar uma mensagem, ela aparecerá ~ 3 segundos depois. Eu sei que isso pode ser muito mais rápido, porque eu fiz isso antes em um servidor de hospedagem gratuita PHP.

    
por Yeti 03.05.2012 / 17:08

2 respostas

3

O Tomcat armazena em cache o conteúdo estático com um TTL de 5 segundos por padrão. Se você quiser mudar isso, veja o link . Especificamente, você deseja cacheTTL, cachingAllowed e talvez cacheMaxSize e cacheObjectMaxSize.

    
por 06.05.2012 / 19:39
0

Não tenho certeza de como o Tomcat adiciona o cache não a tudo. A maneira fácil de controlar os cabeçalhos é escrever e configurar um filtro de cabeçalho genérico em web.xml da seguinte forma:

=== web.xml ===

NoCache x.y.z.filters.ResponseHeaderFilter

Cache-Control no-cache, deve-revalidar

CacheForWeek uk.co.slc.crm.common.filters.ResponseHeaderFilter

Cache-Control max-age = 604800, público

NoCache / *. do

CacheForWeek / images / *

CacheForWeek / *. js

CacheForWeek / *. css

=== web.xml ===

    
por 03.05.2012 / 17:16

Tags