Como atualizar uma página da web no Chrome (analógico Ctrl + F5) em um dispositivo sem botão de menu?

16

Eu tenho um dispositivo Android Nexus 7 com 4.2.2 e navegador Chrome.

Como se pode realizar uma atualização profunda de uma página da web - análoga à Ctrl+F5tecla de atalho nos desktops?

Observe que o dispositivo não possui um botão de menu.

De acordo com a única pergunta relacionada que encontrei aqui , a solução é limpar completamente o cache do navegador. Eu preferiria uma solução mais conveniente e elegante.

Stan
fonte
2
Como o botão de menu (ou a falta dele) está relacionado?
Eldarerathis
@eldarerathis, vi um post na Internet, sugerido para pressionar o botão Atualizar ferramenta enquanto pressionava a tecla Menu.
Stan
Ah, interessante. Eu nunca tinha ouvido isso antes.
Eldarerathis
1
Esta questão tem respostas muito melhores no StackOverflow (que mostra como a divisão excessiva da comunidade não ajuda; o Android está próximo o suficiente da programação que não vale a pena criar um site separado para; Química x Matemática - com certeza.)
Dan Dascalescu

Respostas:

-2

Ignorando por cache do site:

É necessário que um código javascript simples seja executado na barra de endereço para ignorar o cache e buscar o conteúdo do servidor em vez do cache do navegador. De acordo com esta página MDN em Forçar recarregar a página atual do servidor ,

javascript:location.reload(true)

Digite o código acima na barra de endereços do navegador e pressione a tecla Enter. Isso buscará todo o conteúdo do servidor em vez de escolher os elementos armazenados em cache no seu navegador (ignorando o cache do navegador).

Ignorar dados de cache para todos os sites (cache global)

O javascript acima funciona apenas para um site específico que você abriu no momento. Para limpar todo o cache do site, use os dados globais do cache do navegador. Você encontra isso em,

Settings > Privacy > CLEAR BROWSING DATA

Marque a caixa de seleção "Cache" (e outras opções, como dados do navegador, cookies, senha etc, se desejar) e selecione "Limpar".

Nota: Enquanto o Ctrl+ F5fará com que o navegador jogue fora o cache e solicite novos conteúdos do servidor, o servidor poderá ignorar o no-cachecabeçalho e servir uma página em cache do servidor. Assim, mesmo Ctrl+ F5pode retornar uma versão antiga da página se o servidor ignorar o cabeçalho sem cache.

Modo incógnito:

A navegação no modo de navegação anônima desativa o histórico e o cache. Assim, você pode visitar qualquer site pelo modo de navegação anônima para solicitar novos conteúdos sempre.


Para uma discussão mais interessante sobre o que faz Ctrl+ F5ou força a atualização,

Leia esta postagem do SO, que solicitações são atualizadas nas atualizações "F5" e "Ctrl + F5" dos navegadores?

Por sorte
fonte
Isso não funciona mais no Chrome 47 .
Dan Dascalescu
1
Mesmo depois de limpar os dados de navegação, a atualização profunda não estava acontecendo. Eu tive que matar e reiniciar o Chrome no meu telefone Android para forçá-lo a sair do cache. (Como uma reflexão tardia, parece que mesmo depois de limpar o cache no disco (presumivelmente), o cache na memória ainda está por aí. O Killing Chrome também limpa o cache da memória.) [PS: Por "disco", quero dizer o permanente não armazenamento volátil, também conhecido como memória flash.]
ADTC
3

No meu tablet Samsung, navegando com o Chrome, digite isto na barra de endereços:

javascript:location.reload(true)

Isso deve desencadear uma recarga pesada usando Javascript. Agora não tenho que esperar dias para observar os resultados de uma alteração de código que fiz. Um novo problema, então, é que digitar em um tablet não é minha coisa favorita.

Em vez de digitar o comando acima, também tentei mudar para o modo de área de trabalho e depois voltar. Isso não fez uma atualização profunda.

Aad vd A
fonte
2

Não consegui nenhuma dessas soluções para funcionar. No entanto, eu encontrei uma solução de trabalho.

Primeiro, descubra o URL do css. No meu caso, ficou assim:

/min/assets/css/style.min.css

Escreva no campo de endereço, mas também adicione uma variável GET:

/min/assets/css/style.min.css?hello

Espero que a variável GET seja aceita. Por ser um novo URL, ele força o CSS a recarregar. Agora volte ao site e o css deveria ter sido recarregado.

Jens Törnell
fonte
2

Eu encontrei !!!!!!

No lado esquerdo do URL, há um ícone de informações (i) ou um ícone de cadeado. Clique no ícone e depois em [configuração do site].

Você encontrará um ícone de lixeira para limpar o cache do site atual e, alternativamente, um botão "restaurar preferências".

Trabalhando no Android Chrome 71.

JCM
fonte
1
Não está funcionando no meu S9 +, o Chrome build 73.0.3683.90. Marquei a opção Limpar e redefinir pelo menos 15 vezes em uma página que eu controle (para saber o que o código faz muito bem). No entanto, o JS em execução na página que estou carregando ainda é uma versão antiga.
SE ataca novamente Infelizmente,
1
Bem, funcionou perfeitamente no meu S9, então acho que há algo específico no seu caso! Poderia, por favor, saquear ainda mais?
JCM
Agora eu tentei isso em dois dispositivos diferentes agora, um usando o modo de desenvolvedor (meu telefone, desde que sou desenvolvedor) e um amigo. Também experimentei um tablet; não vá lá +. Também tentei no meu iPhone corporativo usando o Chrome, e o mesmo problema existe. Então, da minha perspectiva, você parece ter sorte, mais do que eu parece ter vários dispositivos defeituosos à minha disposição.
SE ataca novamente Infelizmente,
Obviamente, o verdadeiro problema é o comportamento descolado do Chrome / Android e o cache hiper-agressivo. É como um modo de navegação anônima que não funciona (por falar nisso ... que também não funcionou corretamente ...)
SE ataca novamente Infelizmente
Acabei de verificar que o Chrome do iPhone não tem essa opção, você está dizendo, então acredito que não estamos falando da mesma coisa: além do mais, não há "limpar e redefinir" no Chrome do meu Android. Para verificar três vezes, testei minha sugestão em um Xiaomi A1 funcionando bem (observe que ele exibe o tamanho do cache local da página em KB). Pode ser que você precise fechar a guia (ou tentar matar o chrome). Caso contrário, estou me perguntando o que é o "botão da lixeira" de um site específico que você deve fazer ...?
JCM
1

Acabei de encontrar uma solução mais elegante. No menu da página da Web, solicite a versão desktop do site. Ele puxará os dados do servidor e a página será recarregada. Depois disso, você pode voltar para a versão móvel mais uma vez.

Sergei Granovski
fonte
1
Nem todos os sites oferecem versões para dispositivos móveis / computadores.
ale
1
A versão atual do Chrome no Android tem a opção Solicitar site da área de trabalho. Independentemente de todos os sites atenderem a essa solicitação ou não, ainda é uma opção eficaz em muitos casos. Tentar e descobrir que não funciona é muito mais fácil e rápido do que limpar caches nas configurações.
Philip Jones
1

Preciso de uma maneira de limpar o cache atual ou todo o cache do mesmo domínio de origem via javascript, para garantir que a distribuição de atualização do meu webapp chegue sem erros.

Também não tive êxito em alterar temporariamente as metatags de cache no cabeçalho html.

Somente na área de trabalho e não automatizável:

ctrl + R

costumava trabalhar para forçar o recarregamento para limpar o cache.

agora você tem que pressionar

ctrl + shift + R
or
shift + F5

Parece que o chrome dificultou a limpeza do cache.

Eles provavelmente fazem isso para trapacear nos benchmarks da velocidade do navegador. Estilo VW.

Eu escrevi minha própria função forceReload () que funciona no Windows Chrome e no Android Chrome e chromium:

window.forceReload = function(){
    if( !window.fetch)return document.location.reload( true);
    var els = document.getElementsByTagName( "*");
    for( var i = 0; i < els.length; i++){
        var src = "";
        if( els[i].tagName == "A")continue;
        if( !src && els[i].src)src = els[i].getAttribute( "src");
        if( !src && els[i].href)src = els[i].getAttribute( "href");
        if( !src)continue;
        fetch( src, { cache: "reload"});
    }
    return document.location.reload( true);
};

Essa função recarrega apenas o conteúdo carregado na página atual, você pode acioná-lo uma vez em cada um dos seus clientes após novas atualizações no servidor ou simplesmente adicionar um botão de atualização funcional no seu aplicativo.

saxofone
fonte
Obrigado por compartilhar o código. A busca ainda parece uma API experimental, e provavelmente outra API de cache experimental também pode ser útil.
Stan
-1

Puxe para baixo em uma página para recarregá-la, ela é incorporada ao Chrome para smartphones, para ver mais truques como esse, verifique este link, onde encontrei a solução para o seu problema

fsalazar_sch
fonte
1
Embora esse recurso tenha sido adicionado recentemente aos broswers do Chrome (ver.41 acima), ele não estará disponível nas versões mais antigas. Portanto, esse recurso pode ou não funcionar. E mais importante, isso apenas recarrega a página da maneira normal, mas o OP solicita uma atualização definitiva.
Lucky
Não é especificado se a solução requiered está sob um ponto de vista do android ou codificação
fsalazar_sch
1
Não conseguia entender o que você quer dizer com isso. Mas essa resposta não me convence de que fornecerá uma solução para o problema do OP.
Lucky
Essa "resposta" está literalmente dizendo às pessoas que você pode realizar uma atualização regular puxando a página para baixo. A pergunta do OP, no entanto, era sobre fazer uma "atualização definitiva", equivalente a CTRL + F5 no PC.
Bort
-3

À esquerda da janela do endereço da web que você está visitando, há uma seta quase circular.

Manolo
fonte
1
Eu não acredito que isso faça uma atualização profunda como Stan está pedindo.
dotVezz 25/09