Forçar o Google Chrome a verificar novos arquivos JavaScript toda vez que eu acessar um site

26

Então, se eu for às opções da Internet no Internet Explorer:

EupossoajustarasconfiguraçõesparaquandooIEverificarseháatualizações:

Posso fazer algo semelhante no Google Chrome? Agora, quando eu mudo meu arquivo JavaScript e depuro do Visual Studio, o Chrome sempre usa a versão em cache em vez de usar a versão modificada. Para poder usar a versão atual, tenho que limpar manualmente meus arquivos / cache temporários da Internet, o que é realmente irritante.

    
por EJoshuaS 04.04.2017 / 19:04

5 respostas

54

Opção 1: desativar o cache temporariamente

  1. Abra as Ferramentas do desenvolvedor (Pressione F12 ou Menu, Mais ferramentas, Ferramentas do desenvolvedor)
  2. Abra as configurações das ferramentas do desenvolvedor (pressione F1 ou o menu DevTools, configurações)
  3. Marque a opção "Desativar cache (enquanto o DevTools estiver aberto)" sob o cabeçalho Rede do painel Preferências

Opção 2: desativar o cache para a sessão

Inicie o Chrome com as opções de linha de comando --disk-cache-size=1 --media-cache-size=1 , o que limitará os caches a 1 byte, o que efetivamente desativa o cache.

Opção 3: atualização manual de força

Reload the current page, ignoring cached content: Shift+F5 or Ctrl+Shift+r

Chrome Keyboard Shortcuts - Chrome Help (Under "Webpage shortcuts")

Opção 4: Opções de recarga extra ( Fonte )

Com as Ferramentas do desenvolvedor abertas, clique com o botão direito do mouse no botão Recarregar para exibir um menu de recarga com o seguinte:

  • Recarregar normal (Ctrl + R)
  • Atualizar hard (Ctrl + Shift + R)
  • Cache vazio e recarregamento físico
por 04.04.2017 / 19:42
8

Pode não estar 100% relacionado à atualização do Chrome, mas para um maior desenvolvimento. Como o @Dom disse, você pode adicionar um? V = # após o seu recurso. Uma maneira de automatizar o processo é fazer o hash do conteúdo do arquivo e usá-lo como a versão.

Eu tenho um código de snippet sobre como fazer isso em C # (Razor for implementation) se isso puder ajudar.

Ajudante:

public static string HashUrl(string relativeUrl)
    {
        var server = HttpContext.Current.Server;
        if (File.Exists(server.MapPath(relativeUrl)))
        {
            byte[] hashData;
            using (var md5 = MD5.Create())
            using (var stream = File.OpenRead(server.MapPath(relativeUrl)))
                hashData = md5.ComputeHash(stream);

            return relativeUrl.Replace("~", "") + "?v=" + BitConverter.ToString(hashData).Replace("-", "");
        }
        return relativeUrl + "?v=notFound";
    }

Implementação:

<link rel="stylesheet" [email protected]("~/Controllers/Home/Views/Index.css") />

Espero que isso ajude

EDIT --- Alguns pediram algum tempo de execução de compilação e, para 1000 recursos pequenos, são necessários aproximadamente 11 ms.

link

link

    
por 05.04.2017 / 23:10
5

Em outros casos em que isso pode não ser possível, por exemplo, para forçar uma atualização no computador de um usuário final ao qual você não tem acesso, você pode acrescenta um número de versão ao nome do script como um parâmetro de consulta, fazendo com que o navegador o identifique como um arquivo diferente . ie. %código%. Lembre-se de que você precisa alterar o número em cada recarregamento para forçá-lo.

Você também pode fazer isso com o desenvolvimento local, mas o método de ferramentas de desenvolvimento é muito mais eficiente.

    
por 05.04.2017 / 14:16
3

além da resposta do @Steven, quando você abrir o Console de Ferramentas do desenvolvedor aberto, poderá clicar com o botão direito do mouse no botão de atualização e usá-lo o menu suspenso.

Neste menu, você tem uma opção para "Cache vazio e recarregamento de disco rígido" .

É o que você está procurando.

    
por 05.04.2017 / 12:06
1

Se você estiver desenvolvendo o site, saiba que o Chrome exige a configuração must-revalidate em Cache-Control para recuperar arquivos corretamente quando eles são alterados no servidor.

As outras respostas dizem-lhe como acertar no SHIFT-F5 para forçar a sua própria versão do Chrome a reexaminar todos os ficheiros. Mas é razoável dizer a todos os usuários do site para fazer isso toda vez que o site mudar? Se você definir Cache-Control para incluir must-revalidate , o Google Chrome verificará se algum arquivo foi alterado e, em seguida, fará o download adequado quando necessário.

Veja os detalhes nesta postagem do blog: link

    
por 30.01.2018 / 03:30