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.


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?



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.


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.


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.


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.


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.


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


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.


1
Eu não acredito que isso faça uma atualização profunda como Stan está pedindo.
— dotVezz 25/09
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.