Bagaimana cara mematikan caching di Firefox?

143

Selama pengembangan saya harus "menghapus cache" di Firefox setiap saat untuk membuatnya menggunakan versi terbaru file JavaScript.

Apakah ada semacam pengaturan (about: config) untuk mematikan caching sepenuhnya untuk file JavaScript? Atau, jika tidak, untuk semua file?

Thilo
sumber

Jawaban:

229

Masukkan "about: config" ke bilah alamat Firefox dan setel:

browser.cache.disk.enable = false
browser.cache.memory.enable = false

Jika berkembang secara lokal, atau menggunakan atribut manifes HTML5 yang baru, Anda mungkin juga harus mengatur yang berikut di about:

browser.cache.offline.enable = false
pertama
sumber
bagaimana saya tidak tahu tentang permata kecil ini? Semua jenis barang di sekitar: config!
ABrowne
2
network.http.use-cache tidak ada untuk saya. Mengubah browser.cache.offline.enable tidak membuat perbedaan bagi saya.
Curtis
1
Saya tidak ragu ini adalah jawaban yang baik, tetapi sepertinya tidak lagi benar dalam versi firefox terbaru (saya menggunakan edisi pengembang 47.0a2 saat ini). Menonaktifkan caching di pengaturan pengembang web efektif bagi saya.
JosephStyons
61

The Web Developer Toolbar memiliki opsi untuk caching menonaktifkan yang membuatnya sangat mudah untuk menyalakannya dan off ketika Anda membutuhkannya.

Philnash
sumber
1
CTRL-F5 atau menahan tombol shift sambil mengklik tombol Reload adalah apa yang telah saya lakukan di masa lalu, tetapi fitur "Disable Cache" dari Web Developer Toolbar adalah cara yang bagus untuk melakukan itu. Anda tidak harus sepenuhnya menonaktifkan cache firefox dengan cara itu.
Jon Onstott
1
Anda harus ingat mengaktifkan cache setelah pengujian. ;)
neurolab
1
@ Shanimal, Ini berfungsi untuk saya di 14.0.1, Anda mungkin ingin menghapus / memasang resin atau sesuatu.
Lucas
@Lucas doh! Barang-barang di server tempat saya bekerja adalah caching, tapi saya lupa menghapus komentar saya ... Terima kasih.
Shanimal
1
Ini tidak berfungsi lagi sampai chrispederick memperbaiki beberapa perubahan firefox baru di versi terbaru. Saya akan menggunakan solusi about: config yang lebih baik untuk pengembang.
Ligemer
12

Sudahkah Anda mencoba menggunakan CTRL- F5untuk memperbarui halaman?

beberapa
sumber
6
Saya benar-benar ragu bahwa ini bekerja dengan andal, setidaknya di hadapan iframe dan frameset.
Thilo
2
benar, itu tidak akan selalu memuat ulang JS / CSS dalam iframe, tetapi di Firefox Anda setidaknya dapat pop frame itu ke tab baru, dan memuat ulang di sana.
scunliffe
Saya selalu menggunakan Ctrl-F5 .... lalu saya menemukan bahwa itu tidak akan memuat versi terbaru dari file js saya bekerja di :( Berada di iframe, juga (saya tahu, iframe adalah iblis, bukan pilihan saya )
Gromer
Ctrl-F5 tidak mengatur ulang caching file javascript. apa yang dilakukannya (kebanyakan) adalah menghapus sesi dan cookie Anda, tetapi bukan javascript dan stylesheet yang di
cache
10

Tidak ada opsi khusus untuk menonaktifkan caching hanya untuk JavaScript, Anda harus menonaktifkan caching sepenuhnya.

FireBug memiliki opsi untuk menonaktifkan cache browser pada menu drop down tab Network.

kynan
sumber
8

Pada halaman yang sama Anda ingin menonaktifkan caching lakukan ini: FYI: versi yang sedang saya kerjakan adalah 30.0

Kamu bisa :

buka bilah alat pengembang web buka pengembang web

dan pilih nonaktifkan cache

Setelah itu ia akan memuat kembali halaman dari miliknya sendiri (Anda aktif) dan setiap hal di-recached dan setiap permintaan selanjutnya juga dihitung ulang setiap kali dan Anda dapat membuat pengembang web selalu terbuka untuk mengawasi dan memastikannya selalu aktif (periksa) .

shareef
sumber
8

Firefox 48 Alat Pengembang

Memungkinkan Anda untuk mematikan cache hanya ketika toolbox terbuka, yang sempurna untuk pengembangan web:

  • F12
  • gearbox di sudut kanan atas
  • gulir ke bawah atas Pengaturan lanjutan
  • centang "Nonaktifkan Cache (ketika kotak alat terbuka)"

masukkan deskripsi gambar di sini

https://stackoverflow.com/a/27397425/895245 memiliki konten yang serupa, tetapi sejak itu positioning sedikit berubah.

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
sumber
1
Terima kasih ... ada info di luar sana (dan di utas ini) tentang pengaturan network.http.use-cache ke false ... tetapi dalam versi FF (53) saya bahwa pengaturan tidak lagi ada ... Teknik ini jauh lebih unggul bagaimanapun.
mike rodent
7

Jika Anda bekerja dengan kode sisi server, Anda dapat menghasilkan nomor acak dan menambahkannya ke akhir src dengan cara berikut ....

src = "yourJavascriptFile.js? randomNumber = 434534"

dengan RandomNumber yang dihasilkan secara acak setiap kali.

RekrowYnapmoc
sumber
Ini adalah satu-satunya solusi yang berhasil bagi saya selain membersihkan cache browser secara manual setiap kali saya menyegarkan.
Curtis
4

Saya tahu saya menghidupkan kembali pertanyaan kuno, tetapi saya mencoba untuk memecahkan masalah ini hari ini dan memiliki solusi alternatif. Beralih caching ketika saya ingin menguji tidak benar-benar dapat diterima untuk saya, dan seperti yang disebutkan lainnya, penyegaran keras (ctrl + shift + r) tidak selalu berhasil.

Sebagai gantinya, saya memilih untuk meletakkan yang berikut ini di file vhost.conf saya (juga dapat dilakukan dalam .htaccess) di lingkungan dev saya:

<FilesMatch "\.(js|css)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>

Di lingkungan dev saya, ini memastikan bahwa js dan css selalu diambil. Selain itu tidak mempengaruhi sisa penjelajahan saya, dan itu juga bekerja untuk semua browser, jadi pengujian di chrome / ie dll juga mudah.

Temukan cuplikannya di sini, beberapa trik apache berguna lainnya juga: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess

Untuk memastikan bahwa klien saya selalu melihat versi terbaru tentang produksi, kami menambahkan string kueri pada js termasuk pada setiap pembaruan, yaitu

jquery.somefile.js?v=0.5

Ini memaksa browser klien saya untuk memperbarui cache lokal mereka ketika mereka melihat querystring baru, tetapi kemudian cache salinan baru sampai file diperbarui lagi

Kevin Jhangiani
sumber
3

Strategi terbaik adalah merancang situs Anda untuk membangun URL unik ke file JS Anda, yang akan direset setiap kali ada perubahan. Dengan cara itu cache ketika tidak ada perubahan, tetapi segera memuat ulang ketika perubahan terjadi.

Anda harus menyesuaikan alat lingkungan khusus Anda, tetapi jika Anda menggunakan PHP / Apache, berikut ini adalah solusi yang bagus untuk Anda, dan pengguna akhir.

http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/

scunliffe
sumber
3

Anda bisa menggunakan CTRL-F5 untuk memuat ulang melewati cache.

Anda dapat mengatur preferensi di firefox untuk tidak menggunakan cache

network.http.use-cache = false

Anda dapat mengatur server web Anda untuk mengirim header no-cache / Expires / Cache-Control untuk file js.

Berikut adalah contoh untuk server web apache.

Menepuk
sumber
apakah itu shift-f5 atau ctrl-f5?
Thilo
3

Jika Anda menggunakan FireBug, pada menu drop down tab Network ada pilihan untuk menonaktifkan cache browser.

masukkan deskripsi gambar di sini

Nerdroid
sumber
Firebug dihentikan.
K7AAY
1

Ada pro dan kontra untuk dua solusi terakhir diposting, tetapi mereka berdua solusi hebat IMHO.

  1. Anda mungkin atau mungkin tidak ingin ID sesi Anda tertanam di url Anda seperti itu untuk keamanan yang lebih ketat. Tetapi dalam pengembangan itu seharusnya tidak masalah, tetapi bagaimana jika Anda lupa menghapusnya? Apakah itu benar-benar berfungsi? Tidakkah Anda membutuhkan sesuatu seperti generator nomor urut (jumlah hit disimpan dalam sesi, atau bahkan mungkin hanya jika 1 kemudian 0, jika 0 maka 1)?

  2. Menambahkan id sesi (atau sequencer apa pun) berarti Anda harus ingat untuk menambahkannya ke setiap sumber daya yang tidak ingin di-cache. Di satu sisi itu lebih baik karena Anda bisa memasukkan id sesi Anda hanya dengan sumber daya yang Anda kembangkan dan uji coba secara aktif. Di sisi lain, itu berarti Anda harus melakukan itu dan Anda harus ingat untuk menghapusnya untuk produksi.

  3. Memodifikasi vhost.conf atau file .htaccess melakukan trik dengan baik tanpa perlu ingat untuk menambah dan menghapus id sesi. Tetapi sisi buruknya adalah kinerja semua sumber daya js dan css akan terpengaruh, dan jika Anda memiliki file besar, itu akan memperlambat Anda.

Keduanya tampak seperti solusi hebat dan elegan - tergantung kebutuhan Anda.

meem
sumber
1

Saya menggunakan CTRL- SHIFT- DELETEyang mengaktifkan fitur privasi, memungkinkan Anda menghapus cache, mengatur ulang cookie, dll, semuanya sekaligus. Anda bahkan dapat mengkonfigurasinya sehingga hanya MELAKUKANnya, alih-alih muncul kotak dialog yang meminta Anda untuk mengonfirmasi.

Mr. Shiny dan New 安 宇
sumber
1

Di versi Firefox yang lebih tinggi, seperti Nightly, ada opsi bernama "disable cache", Anda dapat menemukannya dengan mengeklik gir. Dan opsi itu hanya berfungsi di sesi saat ini, yang berarti ketika Anda menutup inspektur dan memulai kembali, Anda harus memeriksanya lagi jika Anda ingin tangkapan dinonaktifkan.

jiyinyiyong
sumber
Saya berharap ada cara untuk menonaktifkan cache secara global. Sangat menjengkelkan karena harus memeriksanya setiap kali saya membuka inspektur.
Carlos Garcia
0

Setelah 2 jam browsing untuk berbagai alternatif, ini adalah sesuatu yang berhasil untuk saya.

Persyaratan saya adalah menonaktifkan caching file js dan css di aplikasi web aman semi saya. Tetapi pada saat yang sama caching file-file ini "dalam" sesi tertentu.

Melewati id unik dengan setiap permintaan adalah salah satu pendekatan yang disarankan.

Dan ini yang saya lakukan: - Alih-alih

<script language="javascript" src="js/home.js"></script>

Saya menggunakan

<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>

Setiap kontra untuk pendekatan di atas dipersilakan. Masalah Keamanan?

Darshan
sumber
0

Di firefox 45, opsi cache disk dapat diatur dengan mengubah nilai: browser.cache.disk.enable

Nilai dapat diatur pada halaman "about: config".

Pada http://kb.mozillazine.org/About:config_entries#Browser Saya menemukan deskripsi berikut untuk "browser.cache.disk.enable":

Benar (standar): Gunakan cache disk, hingga kapasitas yang ditentukan dalam browser.cache.disk.capacity False: Nonaktifkan cache disk (efek yang sama dengan pengaturan browser.cache.disk.capacity ke 0)

Daniel
sumber
0

Pertama-tama, ini dapat dengan mudah dilakukan, misalnya dengan PHP memaksa browser untuk memperbarui file berdasarkan tanggal cache (waktu kedaluwarsa). Jika Anda hanya membutuhkannya untuk kebutuhan eksperimental, maka coba gunakan ctrl + shift + del untuk menghapus semua cache sekaligus di dalam browser Firefox. Solusi ketiga adalah menggunakan banyak add-on yang keluar untuk Firefox untuk menghapus cache berdasarkan garis waktu.

Amir Ghorbani
sumber