Come aggiornare una pagina Web in Chrome (Ctrl + F5 analogico) su un dispositivo senza pulsante menu?


16

Ho un dispositivo Android Nexus 7 con 4.2.2 e browser Chrome.

Come si può eseguire un aggiornamento profondo di una pagina Web - analogo del Ctrl+F5tasto di scelta rapida sui desktop?

Si prega di notare che il dispositivo non ha un pulsante menu.

Secondo l'unica domanda correlata che ho trovato qui , la soluzione è cancellare completamente la cache del browser. Preferirei una soluzione più comoda ed elegante.


2
In che modo è correlato il pulsante menu (o la sua mancanza)?
eldarerathis,

@eldarerathis, ho visto alcuni post in rete, mi hanno suggerito di premere il pulsante Aggiorna strumento tenendo premuto il tasto Menu.
Stan,

Ah, interessante. Non l'avevo mai sentito prima.
eldarerathis,

1
Questa domanda ha risposte molto migliori su StackOverflow (che mostra come l'eccessiva suddivisione della community non aiuta; Android è abbastanza vicino alla programmazione da non valere la pena creare un sito separato; Chimica vs. Matematica - certo.)
Dan Dascalescu,

Risposte:


-2

Bypass per cache del sito:

Ciò richiede un semplice codice javascript da eseguire nella barra degli indirizzi per bypassare la cache e recuperare i contenuti dal server anziché dalla cache del browser. Secondo questa pagina MDN su Force ricaricare la pagina corrente dal server ,

javascript:location.reload(true)

Inserisci il codice sopra nella barra degli indirizzi del browser e premi il tasto Invio. Questo recupererà tutto il contenuto dal server invece di selezionare gli elementi memorizzati nella cache del tuo browser (bypassando così la cache del browser).

Bypassare i dati della cache per tutti i siti Web (Global cache)

Il javascript sopra funziona solo per un sito Web specifico che hai attualmente aperto. Per cancellare tutta la cache del sito Web, utilizzare i dati della cache del browser globale. Lo trovi sotto,

Settings > Privacy > CLEAR BROWSING DATA

Seleziona la casella di controllo "Cache" (e altre opzioni come dati del browser, cookie, password ecc. Se lo desideri) e seleziona "Cancella".

Nota: Mentre Ctrl+ F5farà sì che il browser scarichi la cache e richieda nuovi contenuti al server, il server potrebbe ignorare l' no-cacheintestazione e servire una pagina cache sul lato server. Pertanto, anche Ctrl+ F5potrebbe restituire una versione precedente della pagina se il server ignora l'intestazione no-cache.

Modalità incognito:

La navigazione in modalità di navigazione in incognito disabilita la cronologia e la cache. Quindi puoi visitare qualsiasi sito attraverso la modalità di navigazione in incognito per richiedere sempre nuovi contenuti.


Per una discussione più interessante su cosa fa Ctrl+ F5o forza l'aggiornamento,

Leggi questo post SO, quali richieste generano gli aggiornamenti "F5" e "Ctrl + F5" dei browser?



1
Anche dopo aver cancellato i dati di navigazione, l'aggiornamento profondo non stava avvenendo. Ho dovuto uccidere e riavviare Chrome nel mio telefono Android per forzarlo a ottenere dalla cache. (Come ripensamento, sembra che anche dopo aver svuotato la cache su disco (presumibilmente), la cache in memoria sia ancora in giro. Killing Chrome cancella anche la cache di memoria.) [PS: Per "disco" intendo il non permanente memoria volatile
nota anche

3

Sul mio tablet Samsung navigando con Chrome, digita questo nella barra degli indirizzi:

javascript:location.reload(true)

Ciò dovrebbe innescare un ricaricamento intenso utilizzando Javascript. Ora non devo aspettare giorni per osservare i risultati di un cambio di codice che ho effettuato. Un nuovo problema è che scrivere su un tablet non è la mia cosa preferita da fare.

Invece di digitare il comando sopra ho anche provato a passare alla modalità desktop e poi indietro. Quello non ha rinfrescato profondamente.


2

Non ho avuto nessuna di queste soluzioni per funzionare. Tuttavia ho trovato una soluzione funzionante.

Innanzitutto, scopri l'URL CSS. Nel mio caso sembrava così:

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

Scrivilo nel campo dell'indirizzo, ma aggiungi anche una variabile GET:

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

Speriamo che la variabile GET sia accettata. Perché è un nuovo url costringe il CSS a ricaricare. Ora torna al sito e il CSS avrebbe dovuto essere ricaricato.


2

L'ho trovato !!!!!!

Sul lato sinistro dell'URL è presente un'icona informazioni (i) o un'icona a forma di lucchetto. Fare clic sull'icona e quindi [configurazione del sito Web].

Troverai un'icona cestino per cancellare la cache del sito corrente e, in alternativa, un pulsante "Ripristina preferenze".

Lavorando su Android Chrome 71.


1
Non funziona sul mio S9 +, Chrome build 73.0.3683.90. Ho premuto l'opzione Cancella e ripristina almeno 15 volte in una pagina che controllo (quindi so cosa fa abbastanza bene il codice). Tuttavia, il JS in esecuzione sulla pagina che sto caricando è ancora una versione precedente.
SE colpisce ancora purtroppo il

1
Bene, ha funzionato perfettamente sul mio S9, quindi immagino che ci sia qualcosa di specifico nel tuo caso! Potresti, per favore, fare un bottino in più?
JCM,

Ora ho provato questo su due diversi dispositivi ora, uno usando la modalità sviluppatore (il mio telefono, poiché sono uno sviluppatore) e quello di un amico. Inoltre, ho provato su un tablet; no vai lì +. Inoltre, ho anche provato sul mio iPhone aziendale utilizzando Chrome e lo stesso problema è presente. Quindi, dal mio punto di vista, sembri fortunato, più di quanto sembri avere più dispositivi difettosi a mia disposizione.
SE colpisce ancora purtroppo il

Naturalmente, il vero problema è il comportamento funky di Chrome / Android e la cache iper-aggressiva. È come una modalità in incognito che non funziona (a proposito del quale ... che non ha funzionato correttamente neanche ...)
SE colpisce ancora purtroppo il

Ho appena verificato che il Chrome di iPhone non ha questa opzione che stai dicendo, quindi credo che non stiamo parlando della stessa cosa: per di più non c'è nessuno "cancella e ripristina" nel Chrome del mio Android. Per triplicarlo, ho testato il mio suggerimento su uno Xiaomi A1 che funziona correttamente (notare che mostra la dimensione della cache locale della pagina in KB). Potrebbe essere necessario chiudere la scheda (o provare a uccidere Chrome). Altrimenti mi chiedo che cosa dovrebbe fare il "pulsante cestino" di un sito specifico ...?
JCM

1

Trovo solo una soluzione più elegante. Nel menu della pagina Web chiedere la versione desktop del sito Web. Estrarrà i dati dal server e la pagina verrà ricaricata. Dopodiché puoi tornare di nuovo per la versione mobile.


1
Non tutti i siti Web offrono versioni mobili / desktop.
Ale

1
La versione corrente di Chrome su Android ha l'opzione Richiedi sito desktop. Che tutti i siti rispettino tale richiesta o meno, in molti casi è comunque un'opzione efficace. Provare questo e trovarlo non funziona è molto più semplice e veloce che cancellare le cache nelle impostazioni.
Philip Jones,

1

Ho bisogno di un modo per cancellare la cache corrente o tutta la cache dallo stesso dominio di origine tramite javascript, quindi posso assicurarmi che il lancio dell'aggiornamento della mia webapp arrivi senza errori.

Inoltre non ho avuto successo nel modificare temporaneamente i meta tag della cache nell'intestazione html.

Solo su desktop e non automatizzabili:

ctrl + R

utilizzato per forzare il ricaricamento per cancellare la cache.

ora devi premere

ctrl + shift + R
or
shift + F5

Sembra che Chrome abbia reso difficile svuotare la cache.

Probabilmente lo fanno per imbrogliare nei benchmark della velocità del browser. Stile VW.

Ho scritto la mia personale soluzione forceReload () che funziona su Windows Chrome e 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);
};

Questa funzione ricaricherà solo i contenuti che sono stati caricati nella pagina corrente, puoi attivarli una volta su ciascuno dei tuoi client dopo che sul server sono presenti nuovi aggiornamenti o semplicemente aggiungere un pulsante di aggiornamento funzionante sulla tua app.


Grazie per aver condiviso il codice. Il recupero sembra ancora API sperimentale, quindi probabilmente potrebbe essere utile anche un'altra API cache sperimentale.
Stan,

-1

Scorri verso il basso su una pagina per ricaricarla, viene incorporata in Chrome per smartphone, per vedere altri trucchi come questo controlla questo link, dove ho trovato la soluzione al tuo problema


1
Sebbene questa funzione sia stata recentemente aggiunta ai browser Chrome (versione 41 sopra), non sarà disponibile nelle versioni precedenti. Quindi questa funzione potrebbe non funzionare. E, cosa ancora più importante, questo ricarica la pagina normalmente, ma l'OP richiede un aggiornamento intenso.
Lucky

Non è specificato se la soluzione richiesta è sotto il punto di vista di android o di codifica
fsalazar_sch

1
Non riesco a capire cosa intendi con quello. Ma questa risposta non mi convince che fornirà una soluzione al problema del PO.
Lucky

Questa "risposta" sta letteralmente dicendo alle persone che puoi eseguire un aggiornamento regolare spostando verso il basso la pagina. La domanda di OP tuttavia era di fare un "hard refresh", CTRL + F5 equivalente sul PC.
Bort

-3

A sinistra della finestra dell'indirizzo web che stai visitando c'è una freccia quasi circolare.


1
Non credo che questo faccia un profondo aggiornamento come Stan sta chiedendo.
dotVezz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.