Come posso forzare un ricaricamento intenso in Chrome per Android


207

In Chrome per desktop ho opzioni negli strumenti di sviluppo per disabilitare completamente la cache quando gli strumenti di sviluppo sono aperti e ho le opzioni per eseguire manualmente un ricaricamento intenso facendo clic a lungo sul pulsante di caricamento (con gli strumenti di sviluppo aperti).

Esiste una tale tecnica per Chrome per Android? Non ho trovato nessuna impostazione. Cosa posso fare quando voglio forzare il browser a scaricare alcuni file javascript o css invece di usarne uno memorizzato nella cache durante lo sviluppo?



Sono appena tornato per estendere (ciò che era stato) un'app Web stabile e ho scoperto che ciò stava accadendo. I dati di stato più recenti sono archiviati in un file .js con un suffisso url cache-buster. Questo non funziona più, in Chrome su Windows, ChromeOS o Android.
Euan M,

sembra che un semplice aggiornamento (facendo clic sul cerchio con la freccia) rilevi eventuali cambiamenti in questi giorni. nessun trucco. ... fammi sapere se sbaglio.
Ronnie Royston,

Risposte:


168

Sto usando window.location.reload(true)secondo MDN (e questa domanda simile) impone alla pagina di ricaricare dal server.

È possibile eseguire questo codice nel browser digitando javascript:location.reload(true)nella barra degli indirizzi.


7
Basta digitarlo sulla barra degli indirizzi con il prefisso del codice javascript:.
Konrad Dzwinel,

4
In realtà, dovresti essere in grado di evitare una window.parte. javascript:location.reload(true)dovrebbe fare il trucco.
Konrad Dzwinel,

5
non ha funzionato per me su Chrome v55.0.2883.91 / android5.1.1
Kev

20
Non funziona sul mio, v56.0.2924.87 su Android 7.1.1. Perché puoi semplicemente aggiornare e far scaricare di nuovo il browser come prima? Un tale fastidio quando si cerca di svilupparsi.
Scott Wilson

33
Apro una finestra di
navigazione in

133

La visualizzazione della pagina in modalità di navigazione in incognito disabiliterà la cache. Era l'unico modo per forzare un aggiornamento su un foglio di stile senza cancellare manualmente la cache attraverso le impostazioni.


2
@Kev Né per me.
Ricky Boyce,

1
Sì, questo funziona per me su Android 6.0.1 con Chrome 59.
Avio

4
Funziona meglio della risposta accettata, almeno su Android 7.1.2 e Chrome 61. La memorizzazione nella cache è in qualche modo davvero aggressiva. Anche lo svuotamento dei file memorizzati nella cache per quel dominio non ha funzionato per me.
Ogier Schelvis,

Lo uso più spesso, se non funziona per te probabilmente la cache si trova sul server e non sul browser.
Deepak Kamat,

2
Svuota la cache in modalità di navigazione in incognito solo la prima volta. Successivamente viene visualizzato lo stesso problema
Mara,

75

Anche un'opzione:

  1. Menù
  2. impostazioni
  3. vita privata
  4. Cancella dati di navigazione
  5. Seleziona "Cache" e premi "CLEAR"

e quindi ricaricare la pagina.


1
Ora è cambiato in Clear Browsing Data, dove puoi selezionare clear cacheusando la casella di controllo.
Shaijut,

1
No, quindi KILL Chrome, riavvia Chrome, quindi ricarica la pagina. Sì, è solo peggiorato.
ADTC

4
Aggiornamento: anche uccidere Chrome non funziona più. Non ho idea di cosa diavolo l'opzione "Immagini e file memorizzati nella cache" stia deselezionando ... è ancora valida per il file CSS memorizzato nella cache. Questo sta diventando più ridicolo!
ADTC,

1
Aggiornamento: vedi la risposta di heidgert. Lo svuotamento della cache potrebbe comunque caricare i risultati "memorizzati nella cache" dai server di Google se "Risparmio dati" è attivato nelle impostazioni di Chrome.
ADTC,

1
Questo cancellerà la cache da TUTTI i siti, non solo da quello ispezionato.
Obmerk Kronen,

46

Puoi utilizzare l' opzione Richiedi sito desktop dal menu dell'app (a destra della barra degli indirizzi) che imporrà il ricaricamento della pagina.

Basta toccarlo, attendere l'aggiornamento, quindi deselezionarlo.


Confermato lavorando su Chrome. Ho quasi perso questa risposta mentre scremavo. Rimossi i commenti su Firefox per aiutare la persona successiva. Spero che ciò non sia in conflitto con l'intenzione dell'autore .
Ismaele

1
Questa è di gran lunga la migliore risposta per lo sviluppo quando si ottiene un file css o js bloccato. Trovo che di solito l'aggiornamento funzioni correttamente, ma a volte per qualche motivo inspiegabile un file js o css si blocca, e questo è l'unico modo per sbloccarlo che ho trovato. Vorrei poter dare più di 1 voto, lol, perché è una soluzione così facile.
Lizardx,


1
Questo ha funzionato per me con Chrome 2018 65.0.3325.109 su Samsung Android 5.1.1; SM-T900 Build / LMy47X. Ha avuto l' ulteriore vantaggio di non distruggere i dati memorizzati nella cache (come i localStoragevalori).
CODICE REVISIONATO

1
Non funziona ad aprile 2019. Chrome 73+ non funziona.
SE colpisce ancora Purtroppo il

31

Menzionandolo perché hai menzionato "durante lo sviluppo".

Puoi controllare il dispositivo mobile tramite il Chrome Desktop Browser.

Visita chrome://inspect/#devicessul tuo desktop. E Inspectil dispositivo collegato al desktop. Accetto quando viene richiesto il permesso.

Ora dovresti vedere una finestra Devtool completa per la pagina corrente sul dispositivo mobile.

Ora, usa il collegamento per il ricaricamento forzato (Cmd + Shift + R) sul desktop per eseguire il ricaricamento forzato sul dispositivo mobile!


3
questo commento non è aggiornato ma mi ha messo sulla strada giusta. Devi prima abilitare il telefono reale per il debug tramite Chrome.
Deborah,

Per istruzioni dettagliate su come abilitare il debug USB su un telefono Android, vedere: stackoverflow.com/a/16707217/1024735 . E questa funzione è fantastica per qualcosa di più della semplice capacità di ricarica. Grazie!
kevinmicke,

Per i test negli emulatori Android Ctrl + Shift + R in devtools è davvero bello e veloce. Non è possibile attivare o disattivare alcuna impostazione, ecc. Grazie.
Rainer Schwarze,

21

Non dimenticare di assicurarti che l'impostazione "Riduci l'utilizzo dei dati" sia disattivata, in quanto sembra scaricare i dati memorizzati nella cache (dai server di Google?) Anche se la cache locale è svuotata.


1
PENSO che questa impostazione sia ora semplicemente denominata "Risparmio dati".
Bletch,

19

Come ripristinare tutti i dati per un determinato URL / sito Web su Chrome Mobile per Android:

1 - Apri il menu Chrome e tocca l'icona "i (informazioni)"

uno

2 - tocca "Impostazioni sito"

Due

3 - Toccare l'icona del cestino

tre

Questo è tutto, anche il lavoratore più profondamente assistito per quell'URL ora morirà.


7
Questo non funziona su Chrome 73.0.3683.90 su un Samsung S9 +. L'ho provato più di 15 volte, oltre a javascript: location.reload (true) e non funziona. Sembra che gli utenti Android non possano essere sviluppatori, secondo Guug-Ul, signore delle tenebre.
SE colpisce ancora purtroppo il

Funziona sulla mia nota 8 .. Ma dopo devo aggiornare la pagina.
Chris Cudmore,

Puoi anche ottenere questo menu facendo clic sull'icona del lucchetto (o su qualunque cosa venga visualizzata per connessioni non sicure) a sinistra dell'URL.
Chris Cudmore,

Di gran lunga la migliore soluzione! <3
bArraxas il

12

So che questa è una vecchia domanda, ma ho scoperto che la risposta accettata non ha funzionato per me.

Una soluzione alternativa potrebbe essere quella di aggiungere l'URL con un nuovo parametro URL come website.com?a=1, website.com?a=2ecc

Se hai già dei parametri, ovviamente, useresti una e commerciale cioè website.com?q=test&a=1


Questo funziona Basta ?aè sufficiente se desideri solo ricaricare una volta.
Dan Dascalescu,

11
Questo non è molto fattibile per ricaricare i file di riferimento memorizzati nella cache (come CSS o JS), dal momento che non puoi davvero modificare l'HTML principale per aggiungere il ?a- ovviamente, a meno che tu non sia l'host del sito.
ADTC,

7

A partire dal 2018, dal centro assistenza di Google (testato su Chrome 63):

  1. toccare il menu a tre punti ;
  2. scegli Cronologia> Cancella dati di navigazione ;
  3. se necessario, selezionare il periodo di tempo (sopra l'elenco di controllo);
  4. deseleziona tutti gli elementi tranne immagini e file memorizzati nella cache ;
  5. procedere con Cancella dati e confermare.

Come menzionato in un'altra risposta, anche le schede in incognito sono di grande utilità per lo sviluppo.


Nota passaggio 3: scegliere il periodo di tempo. Questo ha funzionato per me poiché stavo cercando di cancellare le pagine memorizzate nella cache da 3 settimane fa.
Dror,

Non è colpa tua, ma questa è una soluzione piuttosto terribile in quanto cancella i dati di navigazione anche per tutti gli altri siti, il che è una seccatura se usi il tuo browser per qualsiasi cosa diversa da dev dev!
GameKyuubi,

@GameKyuubi In realtà, se selezioni i dati dell'ultima ora il dolore è limitato. Ma, naturalmente, questa soluzione è piuttosto scarsa, ho solo fatto riferimento perché è quella ufficiale e lo fa di lavoro (contrariamente a pochi altri).
Skippy le Grand Gourou,

È un po 'quello che intendo, il fatto che questa sia la soluzione ufficiale è decisamente imbarazzante.
GameKyuubi

7

Ho trovato una soluzione che funziona, ma è brutta.

  • Collega il dispositivo Android al PC con un cavo USB e apri Chrome sul desktop .
  • Fare clic con il tasto destro in un punto qualsiasi di una pagina e selezionare "Ispeziona".
  • Fai clic sul menu a tre punti e seleziona "Dispositivi remoti" nel menu "Altri strumenti":

    inserisci qui la descrizione dell'immagine

  • Nel pannello che si apre, selezionare il dispositivo e quindi il pulsante "Ispeziona" accanto al nome della scheda sul telefono che deve essere aggiornata:

    inserisci qui la descrizione dell'immagine

  • Nella finestra che si apre, fai clic sulla scheda "Rete" e seleziona la casella di controllo "Disabilita cache":

    inserisci qui la descrizione dell'immagine

  • Ricarica la pagina sul tuo telefono o usando il pulsante Ricarica nella finestra DevTools.

Nota: se il telefono non appare nell'elenco dei dispositivi:

  • assicurati che la connessione USB stia utilizzando la modalità Trasferimento file e non si stia semplicemente caricando
  • prova a riavviare ADB o esegui adb devicesper vedere se il dispositivo viene rilevato

1
soluzione formidabile, funziona principalmente per "ispezionare" la pagina Web del dispositivo direttamente sul desktop e puoi anche svuotare la cache. Grazie.
juanram0n

Questa è in realtà la risposta più bella.
Giovanni

6

Il debug remoto consente di utilizzare gli strumenti di sviluppo desktop:

https://developers.google.com/chrome-developer-tools/docs/remote-debugging


si grazie lo so già - avrei dovuto menzionarlo, ma a volte non voglio collegarlo ma ho ancora questa opzione
Riesling

2
Puoi cancellare la cache in questo modo: support.google.com/chrome/answer/2392709
Swonkie

5
Grazie, un'opzione senza svuotare l'intera cache per tutti i siti sarebbe comunque piacevole
Riesling

Questa è l'opzione più affidabile quando abiliti Rete> Disabilita cache
Rupert Rawnsley,

6

Le versioni recenti di Chrome cache sono molto aggressive. Anche le tecniche di busting della cache come " http: // url? Updated = datecode " hanno smesso di funzionare. Devi cancellare la cache o avviare una finestra di navigazione in incognito ogni volta (e assicurarti che il risparmiatore di dati sia disattivato).


Interessante, non ne ero a conoscenza. Hai qualche fonte che supporta questa affermazione?
Antoine,

2
Questo è solo un comportamento osservato mentre sviluppo le mie app Javascript. Ho dovuto specificare la direttiva CACHE-CONTROL: NO-CACHE nell'intestazione HTTP dal mio server Web di sviluppo per evitare di impazzire per i bug che semplicemente non sarebbero scomparsi (perché Chrome stava insistendo sulla memorizzazione nella cache del vecchio codice). Firefox non mostra questo comportamento.
Greg Searle,

4

L'unico modo affidabile che ho scoperto che non richiede il collegamento del telefono a un PC è il seguente:

1. Forza l'arresto dell'app Chrome.

Questo deve essere fatto prima e non è possibile riaprire Chrome fino al termine di questi passaggi. Esistono diversi modi per forzare l'arresto. La maggior parte dei lanciatori domestici ti consente di accedere alle "Informazioni sull'app" tenendo premuto il dito sull'icona di Chrome e selezionando un'icona "i". In alternativa, potresti essere in grado di accedere alle impostazioni di Android e cercare semplicemente "Chrome".

Una volta in "Informazioni app", seleziona "Forza arresto" come mostrato di seguito:


2. Cancella la cache di Chrome

Seleziona "Memoria" dalla stessa schermata:


Infine, seleziona "Svuota cache".

Quando torni all'app di Chrome, la pagina dovrebbe ricaricarsi e servire una versione non memorizzata nella cache.

Inoltre, ho trovato un sito che semplifica il test se hai cancellato la cache: https://refreshyourcache.com/en/cache-test/
Non sono in alcun modo affiliato con esso. Si noti che il metodo per cancellare la cache menzionato su quel sito è in realtà obsoleto e non è più valido.


1
Perfetto, questa è l'unica soluzione che ha funzionato per me senza debug USB.
Luis Lema,

2

EDIT: questo metodo è stato deprecato in Google Chrome e non funzionerà più.

RISPOSTA ORIGINALE:

Sono stato in grado di cancellare la cache (incluso xhr successivo) usando chrome: // net-internals

interni in rete cromata

Quindi fai clic sulla piccola freccia in alto a destra

menù

Seleziona "svuota cache" da quel menu.


In Chrome 75, chrome: // net-internals dice "Il visualizzatore di eventi net-internals e le relative funzionalità sono state rimosse ..."
Bort

@Bort grazie per l'heads up. Sembra che questo metodo non funzionerà più.
Tom Kay,

1

Ecco un'altra semplice soluzione che potrebbe funzionare quando altri falliscono:

Oggi, una soluzione abbastanza semplice per gli sviluppatori ha funzionato per me quando il problema della memorizzazione nella cache era un file CSS memorizzato nella cache. In breve: crea una copia temporanea del file html e naviga fino ad esso per aggiornare la cache CSS.

Questo trucco può aggiornare il file CSS, almeno nel browser predefinito con l'icona a forma di globo blu di Android (ma molto probabilmente il suo gemello, anche il browser Chrome ufficiale e qualunque altro browser incontriamo su telefoni "intelligenti" con la loro tendenza alla cache aggressiva ).

Dettagli:

All'inizio ho provato alcune delle soluzioni abbastanza semplici condivise qui, ma senza successo (ad esempio cancellando la storia recente del sito specifico, ma non mesi e mesi). Tuttavia, il mio ultimo CSS non verrebbe applicato apon refresh. E questo, anche se avevo già utilizzato il trucco del numero di versione nella chiamata al file CSS nella sezione head dell'html che mi aveva aiutato a evitare queste fastidiose cache aggressive in passato. (esempio: link rel = "stylesheet" href = "style.css? v = 001" dove aggiorni questo numero di pseudo-versione ogni volta che apporti una modifica a un file CSS, ad es. 001, 002, 003, 004 ... (dovrebbe essere fatto in ogni file html del sito))

Questa volta (agosto 2019) l'aggiornamento del numero di versione del file CSS non è più sufficiente, né alcune delle misure più semplici menzionate qui hanno funzionato per me, o non sono nemmeno riuscito a trovare l'accesso ad alcune di esse (su un telefono Android in prestito).

Alla fine ho provato qualcosa di relativamente semplice che alla fine ha risolto il problema:

Ho fatto una copia del file index.html del sito assegnandogli un nome diverso (indexcopy.html), l'ho caricato, navigato sul dispositivo Android, quindi sono tornato alla pagina originale, aggiornato (con il pulsante di aggiornamento a sinistra di la barra degli indirizzi) e voilà: questa volta il refresh di index.html alla fine ha funzionato.

Spiegazione: L'ultima versione del file CSS è stata finalmente applicata su Android durante l'aggiornamento della pagina html in questione perché la copia cache del file CSS era stata ora aggiornata quando il file CSS era stato chiamato da una pagina html temporanea con nome diverso che non esisteva da nessuna parte nella cronologia del browser e che avrei potuto eliminare nuovamente in seguito. La cache aggressiva apparentemente ignorava l'URL CSS e passava invece all'URL HTML, anche se era il file CSS che doveva essere aggiornato nella cache.


Purtroppo questo è l'unico che sembra funzionare al giorno d'oggi. Significa che ogni volta che lavori su CSS devi continuare ad aggiornare funzioni.php in wordpress per aggiornare la versione. Sì, un'altra cosa stupida su Google, che non riescono a pensare e sono proprio lì con Microsoft. Ma sì, un vecchio trucco :)
Gavin Simpson il

1

Se è solo questione di file inclusi, aggiungi la versione dopo il percorso ( ?v=12345678)

<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />

Chi carica di nuovo la pagina vedrà le modifiche.


1
Ottima risposta sottovalutata!
lisandro,
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.