Aggiornamento forzato solo dei file JavaScript in Firefox e Chrome


64

Voglio cancellare solo i file JavaScript dai miei browser Web (Firefox e Chrome). Sto eseguendo il debug di JavaScript ed è fastidioso che il mio JS non venga aggiornato ogni volta che cambio i miei file JS. L'unica cosa che posso fare ora è cancellare i miei cookie, ma farlo cancella tutta la mia cronologia di navigazione.

Come posso cancellare / aggiornare i file JavaScript che sono stati caricati nei miei browser senza cancellare altri file?

Risposte:


42

Lo faccio anch'io per lo sviluppo. Io uso Ctrl+ F5. È come un aggiornamento di forza. In questo modo la pagina viene aggiornata, incluso il nuovo download di qualsiasi file JavaScript o file CSS di riferimento anche se sono stati memorizzati nella cache.

NON cancellerà nient'altro come la cronologia di navigazione.

Ma tieni presente che anche se so che funziona su Firefox e probabilmente su Internet Explorer, non sono sicuro che Ctrl+ F5funzioni allo stesso modo in Chrome.

Inoltre, iegik dice:

Su alcuni browser puoi usare ` Ctrl+ Shift+ Rper fare la stessa attività.


Grande! Cambio la risposta accettata alla tua perché la tua è una soluzione più semplice
Graviton,

Lo apprezzo ... Ma tieni presente che anche se so che funziona in Firefox, e probabilmente IE, non sono sicuro che CTRL-F5 funzioni allo stesso modo in Chrome.
sett

2
Lo stesso con Chrome 21 beta su Win7 - l'aggiornamento della pagina con ctrl-f5 non richiede nuovamente il file JS (sto usando Charles per verificare due volte).
Artem Russakovskii,

1
in realtà Chrome considera il primo ctrl + f5 come normale aggiornamento in base alla progettazione, il successivo ctrl + f5 (più di uno) in breve tempo forzerà il ricaricamento di tutte le fonti
Zeela

1
Per Chrome, F12 e fai clic con il pulsante destro del mouse sul pulsante Ricarica. superuser.com/questions/220179/…
Cees Timmerman,

50

Con Chrome:

A partire da Chrome 15, apri gli Strumenti per sviluppatori, fai clic sulla ruota dentata nella parte inferiore sinistra dello schermo e seleziona la casella Disabilita cache .

Disabilita la cache in Chrome 15 e versioni successive

In questo modo, sarai sicuro che le risorse vengano sempre ricaricate dal server e non dovrai svuotare manualmente la cache, che potrebbe anche rimuovere i dati memorizzati nella cache per i siti non correlati.


Grazie per il suggerimento: ho appena controllato e anche questa opzione è disponibile in Chrome 14.
Keybits

Genio! È un'ottima scoperta.
Randomblue,

Fantastico, stavo cercando questo.
Artem Russakovskii,

... e non dimenticare di deselezionare l'opzione dopo aver finito.
Halil Özgür

In un secondo momento, sembra che queste opzioni siano attive solo quando gli devtools sono visibili: twitter.com/ChromiumDev/status/227356682890670080 (da stackoverflow.com/a/7000899/372654 )
Halil Özgür

8

Non sono d'accordo con @ 7wp. Poiché alcuni dei tuoi utenti finali non hanno familiarità con la funzione Ctrl+ F5, e alcuni non sono nemmeno a conoscenza delle differenze tra i browser e persino dell'esistenza di altri browser (ad esempio gli anziani), dovresti forzare il browser a scaricare una nuova copia di i file JS / CSS.

La soluzione migliore qui è aggiungere il timestamp alla fine dei nomi di file .js / .css, o aggiungere la versione svn che è anche una grande idea.

<script src="js/myfile.js?t=<?=time()?>" type="text/javascript"></script>

5

Potresti provare a svuotare solo la cache e non l'intera navigazione, cronologia, cookie, password, dati dei moduli salvati e quant'altro (impostazione predefinita).

In Firefox 3.5, vai a

Strumenti »Cancella cronologia recente ...

Quindi assicurati che sia selezionata solo "Cache" prima di selezionare "Cancella ora".

In Chrome (non so quale versione particolare stai usando, dato che uso le build di sviluppo), vai a

Icona chiave inglese (Strumenti) »Opzioni» Scheda Oggetti personali »Cancella dati di navigazione ...

Ancora una volta, assicurati che sia selezionato solo "Svuota la cache".

In alternativa, puoi provare ad aprire una nuova sessione privata in Firefox o nella finestra di navigazione in incognito in Chrome; nessuno dei due dovrebbe memorizzare nella cache alcun file (inclusi i tuoi file .JS) che scarichi ed elabori automaticamente durante la navigazione.


In incognito è probabilmente la strada da percorrere per Chrome.
mdoar,

1

Ho usato un piccolo trucco su un sito su cui sto lavorando ... per le tue stesse ragioni. Apporto piccole modifiche e ho il codice JavaScript caricato dal codice JavaScript e voglio assicurarmi di lavorare sempre con lo script corrente (non memorizzato nella cache).

Prova a creare il codice JavaScript che stai caricando in un file PHP ... basta metterlo <?php ?>all'inizio e inserire l'estensione di .php.

var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");

// The Date added to the file doesn't effect the results but
// helps Internet Explorer be sure to refresh the data and
// not use cache

var d = new Date();

var t = d.getTime();

fileref.setAttribute("src", filename + ".php?date=" + t);

fileref.setAttribute("id", filename);

Poiché il nome cambia, Internet Explorer pensa che sia un nuovo file;)


1
Non è necessario modificare il nome in ".php". Se inserisci 'nomefile.js? T =' + t il risultato è lo stesso. Puoi farlo anche con '.css'. Tutti i nostri sistemi di produzione utilizzano questo trucco per certificare che i client utilizzano i giusti file di contenuto.
Leonel Martins,

1
Come nota, tendiamo a usare il numero di revisione SVN invece della data / ora. In questo modo otteniamo i vantaggi della memorizzazione nella cache e aggiorniamo solo quando ci impegniamo effettivamente.
Groo,

Grazie mille! Questo trucco mi è sfuggito di mente. Ho combattuto questo problema per giorni e questo lo farà per me. Ho appena messo questo alla fine dell'URL: "? <? Php echo time ()?>"
thrashr888

1

In Chrome puoi semplicemente premere Ctrle fare clic sul pulsante Aggiorna. L'ho scoperto per caso.


Questo fa un duro aggiornamento dell'intera pagina, non penso che questo aggiorni solo Javascript.
Ivo Flipse,

1

Apro il file JavaScript in una scheda separata, Shift+ aggiorno, verifico che sto vedendo le ultime modifiche, quindi Shift+ aggiorno la pagina effettiva (in realtà, nel mio caso, frame in un set di frame, che sembra peggiorare le cose). Funziona quasi sempre.


0

Non l'ho usato da solo, ma il componente aggiuntivo Firefox "Clear Cache Button" potrebbe essere utile. Ho letto la loro documentazione, quindi non sono sicuro che cancelli anche la cronologia di navigazione.


0

Vai alle impostazioni del contenuto in Chrome, disabilita JavaScript e salva.

Quindi, abilitare nuovamente JavaScript.


0

Se stai lavorando con JavaScript e sei preoccupato di ricaricare la pagina per riflettere le modifiche di JavaScript. Prova a utilizzare il debugger di Chrome, in cui puoi apportare modifiche ai file JavaScript caricati in fase di esecuzione e senza utilizzare alcun ricaricamento puoi testare nuove funzioni o modifiche che desideri testare.


Benvenuto in Super User! Si prega di leggere di nuovo attentamente la domanda. La tua risposta non risponde alla domanda originale.
DavidPostill


0

Aggiungi una funzione di data dinamica alla fine del tuo file JavaScript. Costringerà il browser a caricare il file JavaScript aggiornato. Significato, quando si include il file .js è possibile aggiungere .... xyz.js?

< ? php echo date('l jS \of F Y h:i:s A') ? >

Naturalmente questo potrebbe essere rimosso una volta terminato il debug e pronto per essere pubblicato.


Questo non è Javascript.
Natalie Adams,
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.