Uma redefinição do IIS força o reenvio de itens em cache?

10

Estou tentando desenvolver uma estratégia para lidar com arquivos javascript em cache, css, imagens etc. quando lançamos uma atualização em nosso site. Antes de começar a implementar os números de versão nos arquivos javascript, fiquei pensando se uma redefinição do IIS após cada versão faria com que os arquivos armazenados em cache fossem reenviados.

DaveK
fonte

Respostas:

8

Quando você faz um IISReset, o cache do IIS será limpo e começará a ser reconstruído depois que o backup for iniciado quando as solicitações do cliente chegarem. Se você atualizar um arquivo, o arquivo em cache mais antigo ficará obsoleto e o IIS exibirá o arquivo atualizado. atualize o cache com o novo arquivo.

O IISReset (embora duro) limpará o cache do IIS, mas não fará nada com caches locais em proxies ou clientes. Talvez você tenha confundido um pouco a terminologia, mas não existe nenhum conceito de "ressentimento" quando se trata de cache. É tudo baseado em pedidos. Se um cliente solicitar algo e for encontrado em um cache, ele será veiculado no cache. Você precisará forçar a expiração do conteúdo dos seus arquivos se você mantiver os mesmos nomes de arquivo.

squillman
fonte
Obrigado pela ajuda. Por favor, perdoe minha ignorância nessa área ... Estou ficando confuso entre o cliente e o cache do IIS. O termo 'reenviar' era para se referir ao servidor que envia o conteúdo, em vez de ser extraído do cache do cliente.
DaveK
@ Não se preocupe, feliz que ajudou! Um bit adicional, se um arquivo estiver localizado em um cache do cliente ou em um proxy proxy upstream, o servidor nem receberá a solicitação, a menos que o item em cache esteja obsoleto e haja uma versão mais recente disponível no servidor.
squillman 01/09/10
3

Não, o cache do cliente é baseado no tempo de expiração do conteúdo.

Jim B
fonte
3

Quando você modifica um arquivo javascript, precisa de TODOS os clientes que executam o aplicativo Web para obter o novo arquivo, fica claro para mim o "recente".

Para que cada cliente obtenha do servidor o novo arquivo, você só precisa incluir o script de inclusão / javascript na página da web "?version=1".

É necessário apenas um parâmetro, ?blue=helloou ?v=1234155é como você deseja. A importância é usar um valor diferente cada vez que você altera o javascript. "?version=1"para a primeira mudança, "?version=2"para a segunda mudança, é prático e único saber o próximo valor. Além disso, você pode usar um GUID, se desejar: "?version=4747b320-62ce-11cf-a5d6-28db04c10777"ou a data e a hora "?version=20130220175025"de 20/02/2013 17:50:25.

Exemplo 1

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?version=1"></script>

Exemplo 2

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?k=4747b320-62ce-11cf-a5d6-28db04c10777"></script>
Edward López Garbanzo
fonte