Atualização obrigatória apenas de arquivos JavaScript no Firefox e Chrome

64

Quero limpar apenas arquivos JavaScript dos meus navegadores da web (Firefox e Chrome). Estou fazendo a depuração do JavaScript, e é irritante que meu JS não seja atualizado sempre que eu alterar meus arquivos JS. A única coisa que posso fazer agora é limpar meus cookies, mas isso apaga todo o meu histórico de navegação.

Como posso limpar / atualizar os arquivos JavaScript que foram carregados nos meus navegadores sem limpar outros arquivos?

Graviton
fonte

Respostas:

42

Eu mesmo faço isso para o desenvolvimento. Eu uso Ctrl+ F5. É como uma atualização de força. Isso atualiza a página, incluindo o download de todos os arquivos JavaScript ou CSS referenciados, mesmo que tenham sido armazenados em cache.

NÃO limpará mais nada, como o seu histórico de navegação.

Mas observe que, embora eu saiba que isso funciona no Firefox e provavelmente no Internet Explorer, não tenho certeza se o Ctrl+ F5funciona da mesma maneira no Chrome.

Além disso, o iegik diz:

Em alguns navegadores, você pode usar ` Ctrl+ Shift+ Rpara fazer a mesma tarefa.

7wp
fonte
Ótimo! I alterar a resposta aceita a sua, porque o seu é uma solução mais simples
Graviton
Eu aprecio isso ... Mas observe que, embora eu saiba que isso funciona no Firefox e provavelmente no IE, não tenho certeza se o CTRL-F5 funciona da mesma maneira no Chrome.
7wp 5/09/09
2
O mesmo ocorre com o Chrome 21 beta no Win7 - atualizar a página com ctrl-f5 não solicita novamente o arquivo JS (estou usando Charles para verificar novamente).
Artem Russakovskii
11
trata realmente cromo primeira CTRL + F5 como atualização normal, design, ctrl posterior + f5 (mais de um) em curto espaço de tempo irá forçar recarga de todas as fontes
Zeela
11
Para Chrome, F12 e clique com o botão direito do mouse no botão recarregar. superuser.com/questions/220179/...
Cees Timmerman
50

Com o Chrome:

A partir do Chrome 15, abra as Ferramentas do desenvolvedor, clique na roda dentada na parte inferior esquerda da tela e marque a caixa de seleção Desativar cache .

Desativar cache no Chrome 15 e superior

Dessa forma, você terá certeza de que os recursos sempre serão recarregados do servidor e não precisará limpar manualmente o cache, o que também pode remover dados em cache de sites não relacionados.

avernet
fonte
Obrigado pela dica - acabei de verificar e essa opção também está no Chrome 14.
keybits 9/09/09
Gênio! Essa é uma ótima descoberta.
Randomblue
Brilhante, eu estava procurando por isso.
Artem Russakovskii
... e não se esqueça de desmarcar a opção depois de terminar.
Halil Özgür
Em uma segunda tomada, parece que essas opções estão ativas apenas quando o devtools está visível: twitter.com/ChromiumDev/status/227356682890670080 (de stackoverflow.com/a/7000899/372654 )
Halil Özgür
8

Não concordo com @ 7wp. Como alguns de seus usuários finais não estão familiarizados com a função Ctrl+ F5e outros nem sequer estão cientes das diferenças entre os navegadores e da existência de outros navegadores (idosos, por exemplo), você deve forçar o navegador a baixar uma nova cópia do os arquivos JS / CSS.

A melhor solução aqui é adicionar o registro de data e hora no final dos nomes de arquivo .js / .css ou adicionar a versão svn, que também é uma ótima idéia.

<script src="js/myfile.js?t=<?=time()?>" type="text/javascript"></script>
Alon Kogan
fonte
5

Você pode tentar limpar apenas o cache, e não toda a navegação, histórico, cookies, senhas, dados salvos do formulário e outros enfeites (o padrão).

No Firefox 3.5, vá para

Ferramentas »Limpar histórico recente ...

Em seguida, verifique se apenas "Cache" está selecionado antes de selecionar "Limpar agora".

No Chrome (não sei qual versão específica você está usando, como eu uso o build do desenvolvedor), acesse

Ícone de chave inglesa (Ferramentas) »Opções» guia Coisas pessoais »Limpar dados de navegação ...

Novamente, verifique se apenas "Esvaziar o cache" está marcado.

Como alternativa, você pode tentar abrir uma nova sessão Privada no Firefox ou janela anônima no Chrome; também não deve armazenar em cache nenhum arquivo (incluindo os arquivos .JS) que você baixa e processa automaticamente ao navegar.

Cavaleiro real
fonte
Provavelmente é o caminho a seguir para o Chrome.
Mdoar 26/08/10
1

Estou usando um pequeno truque em um site no qual estou trabalhando ... pelos mesmos motivos que você. Eu faço pequenas alterações e tenho o código JavaScript carregado pelo código JavaScript e quero ter certeza de que estou sempre trabalhando com o script atual (sem cache).

Tente criar o código JavaScript que você está carregando em um arquivo PHP ... basta colocar <?php ?>no início e colocar o arquivo .php.

var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");

// The Date added to the file doesn't effect the results but
// helps Internet Explorer be sure to refresh the data and
// not use cache

var d = new Date();

var t = d.getTime();

fileref.setAttribute("src", filename + ".php?date=" + t);

fileref.setAttribute("id", filename);

Como o nome muda, o Internet Explorer acha que é um novo arquivo;)

Peter Mortensen
fonte
11
Não precisa alterar o nome para '.php'. Se você colocar 'filename.js? T =' + t, o resultado será o mesmo. Você pode fazer isso com '.css' também. Todos os nossos sistemas de produção usam esse truque para certificar que os clientes usam os arquivos de conteúdo corretos.
21415 Leonel Martins
11
Como observação, tendemos a usar o número de revisão do SVN em vez da data / hora. Dessa forma, obtemos benefícios de armazenamento em cache e atualizamos apenas quando efetivamente confirmamos.
Groo 21/01
Muito obrigado! Este truque deslizou totalmente na minha mente. Venho lutando contra esse problema há dias e isso fará comigo. Acabei de colocar isso no final do URL: "? <? Php echo time ()?>"
thrashr888
1

No Chrome, basta pressionar Ctrle clicar no botão Atualizar. Eu descobri isso por acaso.

Julio Bahar
fonte
Isso faz uma atualização completa de toda a página; acho que isso não apenas atualiza o Javascript.
Ivo Flipse
1

Abro o arquivo JavaScript em uma guia separada, Shiftatualizo, Shiftverifico se estou vendo as alterações mais recentes e atualizo a página real (na verdade, no meu caso, quadro em um conjunto de quadros, o que parece piorar as coisas). Isso funciona quase o tempo todo.

poços de poço de doug
fonte
0

Eu não o usei, mas o complemento do Firefox "Limpar botão de cache" pode ser útil. Eu li a documentação deles, então não tenho certeza se isso também limpa o seu histórico de navegação.

Jared Harley
fonte
0

Vá para as configurações de conteúdo no Chrome, desative o JavaScript e salve.

Em seguida, ative o JavaScript novamente.

nisar
fonte
0

Se você estiver trabalhando com JavaScript e estiver preocupado em recarregar a página para refletir as alterações no JavaScript. Tente usar o depurador do Chrome, onde você pode fazer alterações nos arquivos JavaScript carregados em tempo de execução e, sem usar qualquer recarregamento, pode testar novas funções ou alterações que deseja testar.

Nikhil Joshi
fonte
Bem-vindo ao Super Usuário! Por favor, leia a pergunta novamente com atenção. Sua resposta não responde à pergunta original.
DavidPostill
0

No Chrome mais recente, está disponível:

Digite a descrição da imagem aqui

Baljeetsingh
fonte
Alguma elaboração não seria errada.
Peter Mortensen
0

Adicione alguma função de data dinâmica no final do seu arquivo JavaScript. Isso forçará o navegador a carregar o arquivo JavaScript atualizado. Ou seja, ao incluir o arquivo .js, você pode adicionar .... xyz.js?

< ? php echo date('l jS \of F Y h:i:s A') ? >

Obviamente, isso poderá ser removido assim que sua depuração estiver pronta e pronta para ser lançada.

Chris
fonte
Isto não é Javascript.
Natalie Adams