Come forzare il debugger di script di Chrome per ricaricare javascript?


244

Mi piace molto la possibilità di modificare javascript nel debugger di Chrome, tuttavia trovo che possa essere davvero problematico far recuperare il debugger dal server dal debugger.

A volte devo andare fino in fondo semplicemente chiudendo il debugger e ricaricando il frame funziona bene - ma altre volte (un dI non riesco a stabilire in quali condizioni si verifica) devo svuotare la cache temporanea di Internet. A volte giuro che devo chiudere Chrome completamente, quindi svuotare la cache e quindi caricare la pagina prima che il debugger mi mostri finalmente lo script più aggiornato.

(NB. Non c'è memorizzazione nella cache dello script da parte del web server)

Mi chiedevo se qualcuno fosse a conoscenza di un modo semplice e veloce per dire al debugger di invalidare tutto il suo javascript e recuperarlo di nuovo al ricaricamento della pagina?


1
A volte devo anche riavviare IIS Express per ricaricare correttamente le cose.
Chris O,

Risposte:


330

Durante lo sviluppo dello script, prova a disabilitare la cache di Chrome.

Quando ricarichi la pagina, JavaScript dovrebbe ora essere aggiornato.


Chrome circa 2011

Apri le impostazioni Disabilita la cache


Chrome circa 2018

Apri le impostazioni Disabilita la cache

Puoi anche accedervi dalla scheda di rete:

Scheda di rete


8
Quindi, questo si applica sempre o solo quando il debugger è aperto?
PilotBob,

7
solo quando gli Strumenti di sviluppo sono aperti
Karolis,

11
Ho avuto quel set da sempre, e ora all'improvviso, sono bloccato con un certo file. Qualcuno trova una soluzione?
IronicMuffin,

5
Questo ha appena aggiunto alcuni anni alla mia vita. Ho provato CMD + MAIUSC + R ma non è stato così. Grazie
Kevin Zych,

7
Per coloro che stanno arrivando a questa domanda più di recente, nota che il menu delle impostazioni è disattivato dal menu a tre punti verticali in Strumenti per gli sviluppatori. Lì sarai in grado di selezionare la casella per disabilitare la cache.
Scott C Wilson,

136

inserisci qui la descrizione dell'immagine

Il menu di scelta rapida mostrato sopra è accessibile facendo clic con il pulsante destro del mouse / premendo e tenendo premuto il pulsante "ricarica", mentre Chrome Dev Tools è aperto .

La cache vuota e l'hard ricaricamento funzionano meglio per me.

Un altro vantaggio: questa opzione mantiene intatte tutte le altre schede aperte e i dati dei siti Web. Ricarica e cancella solo la pagina corrente.


5
Quello è utile soprattutto perché è semplice da spiegare. Avevo il problema che un cliente non vedesse la modifica apportata sul suo sito Web. Premi F12, quindi fai clic con il pulsante destro del mouse sul pulsante Ricarica, scegli Svuota cache e Ricarica dura. Avevo finito, grazie a quel commento :-)
Gull_Code

È la migliore funzione di Chrome :), in qualsiasi momento amico.
Bishoy Hanna,

1
Grazie! Stavo cercando di capire perché il pulsante Ricarica a volte mi dava un menu e altre volte no.
iconoclasta il

1
Non ho avuto problemi con Ctrl + Shift + R durante il ricaricamento dei file Javascript, ma questo non riportava il contenuto aggiornato offerto nei file HTML. Empty Cache e Hard Reload hanno fatto il trucco.
S. Baggy,

Il modo migliore per farlo, usa questa cache vuota e ricarica difficile
hoogw

34

Puoi sempre cancellare un file specifico procedendo come segue:

  1. Apri gli strumenti di sviluppo
  2. Fai clic sulla scheda Fonti
  3. Trova il tuo script / immagine / file
  4. Controlla il pannello a destra per vedere se il tuo file è aggiornato

Altrimenti:

  1. Fai clic con il pulsante destro del mouse sulla risorsa nel riquadro a sinistra e scegli "Apri collegamento in una nuova scheda"
  2. Forza un ricaricamento della risorsa con i metodi sopra. (Vedi l'esempio di @Bishoy Hanna)

Questo è molto utile se si hanno risorse che si trovano in frame e CTRL+F5non è forzato aggiornarle.


1
vero. premendo CTRL + F5 = Cancella la pagina corrente di aggiornamento della cache
ACCIAIO

Non ho una scheda Risorse.
Mike W,

@MikeW è stato rinominato Sources - ho aggiornato la risposta
Steve Tauber,


9

Per Google Chrome non è Ctrl+ F5. È Shift+ F5per cancellare la cache corrente! Per me funziona !


Perché ? Non capisco qual è la differenza tra questo e un commento. Alla fine, la domanda più utile verrà visualizzata nella parte superiore del post.
RPDeshaies

2
L'interrogatore non ha mai menzionato Ctrl-F5 , quindi per definizione la tua risposta non è una risposta alla domanda posta dall'interrogante, è piuttosto un commento , una correzione delle risposte degli altri popoli e dovrebbe essere trattata come tale.
Edward A

9

Ecco una scorciatoia per DevTools:

  1. F12 per aprire Chrome DevTools
  2. F1 per aprire le Impostazioni DevTools
  3. Selezionare Disabilita cache (mentre DevTools è aperto) come mostrato di seguito:

inserisci qui la descrizione dell'immagine

Nota: aggiornato secondo il commento di Dimi. Tendono a spostarlo, quindi fammi sapere o aggiornare il post se noti che è cambiato.



2

Se stai apportando modifiche locali a un javascript negli Strumenti per gli sviluppatori, devi assicurarti di disattivare tali modifiche prima di ricaricare la pagina.

Nella scheda Sorgenti, con lo script aperto, fai clic con il pulsante destro del mouse sullo script e fai clic sull'opzione "Modifiche locali" dal menu di scelta rapida. Viene visualizzato l'elenco degli script in cui hai salvato le modifiche. Se lo vedi in quella finestra, gli Strumenti per gli sviluppatori manterranno sempre la tua copia locale anziché aggiornarla dal server. Fai clic sul pulsante "Ripristina", quindi aggiorna nuovamente e dovresti ottenere la nuova copia.


1

Sembra che il debugger di Chrome carichi i file di origine in memoria e non li lascerà andare nonostante gli aggiornamenti della cache del browser, ovvero ha una propria cache a parte la cache del browser che non è sincronizzata. Almeno, questo è il caso quando si lavora con file mappati di origine (sto eseguendo il debug di fonti dattiloscritte). Dopo aver aggiornato correttamente la cache del browser e convalidato sfogliando direttamente il file di origine, si scarica il file aggiornato, ma non appena si riapre il file nel debugger continuerà a restituire il vecchio file, indipendentemente dalla versione dalla normale cache del browser. Davvero molto anoy.

Lo considero un bug in Chrome. Uso la versione 46.0.2490.71 m.

L'unica cosa che aiuta è riavviare Chrome (chiudere tutti i browser Chrome).


0

Se i file che stai caricando sono memorizzati nella cache e se le modifiche apportate non si riflettono nel codice, ci sono 2 modi in cui puoi gestirlo

  1. Svuota la cache come hanno detto tutti

  2. Se vuoi Cache e solo i file devono essere ricaricati, puoi andare alla scheda di rete dello strumento dev e cancellare tutto ciò che è stato caricato. la prossima volta non lo caricherà dalla cache. avrai le tue ultime modifiche.


0

Se stai eseguendo un server locale su Apache, puoi ottenere quelli che sembrano problemi di cache. Questo mi è successo quando avevo un server Apache in esecuzione su Vagrant (in virtualbox).

Aggiungi le seguenti righe al tuo file di configurazione ( /etc/httpd/conf/httpd.confo equivalente):

#Disable image serving for network mounted drive
EnableSendfile off

Nota che vale la pena cercare nel file di configurazione per vedere se EnableSendfileè impostato su onqualsiasi altra parte.


0

Esistono anche 2 soluzioni (rapide):

  1. Utilizza la modalità di navigazione in incognito durante il debug, chiudi la finestra e riaprila.
  2. Elimina la cronologia di navigazione

0

La disattivazione di Breakpoint ha causato il caricamento del nuovo script per me.


0

Secondo me è più semplice lavorare in una "sessione di navigazione privata" di Chrome, per garantire che i tuoi file javascript non provengano dalla cache.


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.