Firefox'ta önbellek nasıl kapatılır?


143

Geliştirme sırasında, JavaScript dosyalarının en son sürümünü kullanması için Firefox'ta her zaman "önbelleği temizlemem" gerekir.

JavaScript dosyaları için önbelleği tamamen kapatmak üzere bir tür ayar (about: config) var mı? Yoksa, tüm dosyalar için mi?

Yanıtlar:


229

Firefox adres çubuğuna "about: config" girin ve ayarlayın:

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

Yerel olarak geliştiriyorsanız veya HTML5'in yeni manifest özelliğini kullanıyorsanız aşağıdakileri de yaklaşık olarak ayarlamanız gerekebilir: config -

browser.cache.offline.enable = false

bu küçük gem hakkında nasıl bilmiyordum? Hakkında her türlü hediyeler: yapılandırma!
ABrowne

2
network.http.use-cache benim için orada değil. Browser.cache.offline.enable öğesini değiştirmek benim için bir fark yaratmaz.
Curtis

1
Bunun iyi bir cevap olduğundan şüphe etmiyorum, ancak artık en son firefox yapılarında doğru görünmüyor (şu anda 47.0a2 geliştirici sürümünü kullanıyorum). Web geliştirici ayarlarında önbelleğe almayı devre dışı bırakmak benim için etkilidir.
JosephStyons

61

Web Developer Toolbar çok kolay ve ihtiyacınız olduğunda kapatmak için yapar devre dışı önbelleğe alma için bir seçenek vardır.


1
CTRL-F5 veya Yeniden Yükle düğmesini tıklarken shift tuşunu basılı tutmak geçmişte yaptığım şeydir, ancak Web Geliştirici Araç Çubuğunun "Önbelleği Devre Dışı Bırak" özelliği bunu yapmanın harika bir yoludur. Firefox'un önbelleğini bu şekilde tamamen devre dışı bırakmanız gerekmez.
Jon Onstott

1
Yine de, testten sonra önbelleği etkinleştirdiğinizi hatırlamanız gerekir. ;)
neurolabs

1
@Shanimal, 14.0.1'de benim için çalışıyor, kaldırmak / yeniden yüklemek veya başka bir şey yapmak isteyebilirsiniz.
Lucas

@Lucas doh! Birlikte çalıştığım sunucudaki öğeler önbelleğe alındı, ancak yorumumu silmeyi unuttum ... Teşekkürler.
Shanimal

1
Chrispederick son sürümdeki birkaç yeni firefox değişikliğini düzeltene kadar bu artık çalışmaz. Geliştiriciler için daha iyi olan about: config çözümüyle giderdim.
Ligemer

12

Sayfayı güncellemek için CTRL- kullanmayı denediniz F5mi?


6
Bunun en azından iframe'lerin ve çerçeve kümelerinin varlığında güvenilir bir şekilde çalıştığından şüphelerim var.
Thilo

2
doğruysa, JS / CSS'yi her zaman bir iframe'e yeniden yüklemez, ancak Firefox'ta en azından bu çerçeveyi yeni bir sekmeye açabilir ve oraya yeniden yükleyebilirsiniz.
scunliffe

Ben her zaman Ctrl-F5 kullandım .... sonra çalıştığım js dosyaları benim en yeni sürümleri yüklemek olmaz bulundu :( Bir iframe, de (biliyorum, iframe şeytan, benim seçimim değil ).
Gromer

Ctrl-F5, javascript dosyalarının önbelleğe alınmasını sıfırlamaz. (çoğunlukla) oturumunuzu ve çerezlerinizi temizlemek, ancak önbelleğe alınmış javascript ve stil sayfalarını temizlemek değil
AceMark

10

Yalnızca JavaScript için önbelleği devre dışı bırakmanın belirli bir seçeneği yoktur, önbelleğe almayı tamamen devre dışı bırakmanız gerekir.

FireBug , Ağ sekmesinin açılır menüsünde tarayıcı önbelleğini devre dışı bırakma seçeneğine sahiptir.


8

Önbelleğe almayı devre dışı bırakmak istediğiniz sayfada: FYI: üzerinde çalıştığım sürüm 30.0

Yapabilirsin :

web geliştirici araç çubuğunu aç web geliştiricisini aç

ve önbelleği devre dışı bırak seçimini yapın

Bundan sonra sayfayı kendi sayfasından yeniden yükleyecek (açıksınız) ve her şey yeniden önbelleğe alınmış ve her seferinde de herhangi bir istek isteniyor ve web geliştiricisini her zaman göz önünde tutmak ve her zaman açık olduğundan emin olmak için kontrol edebilirsiniz (kontrol) .


8

Firefox 48 Geliştirici Araçları

Önbelleği yalnızca araç kutusu açıkken kapatmanıza olanak tanır; bu, web geliştirme için mükemmeldir:

  • F12
  • sağ üst köşedeki şanzıman
  • aşağı kaydırın Gelişmiş ayarlar
  • "Önbelleği Devre Dışı Bırak (araç kutusu açıkken)"

resim açıklamasını buraya girin

https://stackoverflow.com/a/27397425/895245 benzer içeriğe sahip, ancak konumlandırma o zamandan beri biraz değişti.


1
Teşekkürler ... network.http.use-cache'yi false olarak ayarlamakla ilgili bilgi var (ve bu iş parçacığında) ... ancak FF (53) sürümümde bu ayar artık mevcut değil ... Bu teknik çok daha üstün neyse.
mike kemirgen

7

Sunucu tarafı kodu ile çalışıyorsanız, rastgele bir sayı oluşturabilir ve bunu src'nin sonuna aşağıdaki şekilde ekleyebilirsiniz ...

src = "yourJavascriptFile.js? randomNumber = 434534"

randomNumber her seferinde rastgele oluşturulur.


Bu, her yenilediğimde tarayıcı önbelleğini manuel olarak temizlemenin yanı sıra benim için çalışan tek çözümdür.
Curtis

4

Eski bir soruyu yeniden dirilttiğimi biliyorum, ama bugün bu sorunu çözmeye ve alternatif bir çözüm bulmaya çalışıyordum. Test etmek istediğimde önbelleğe almayı değiştirmek benim için gerçekten kabul edilebilir değildi ve diğerlerinin de belirttiği gibi, sert yenileme (ctrl + shift + r) her zaman işe yaramaz.

Bunun yerine, dev ortamımda vhost.conf dosyasına (.htaccess içinde de yapılabilir) aşağıdakileri koymayı seçtim:

<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>

Geliştirme ortamımda, bu js ve css her zaman alınmasını sağlar. Ek olarak, göz atma işlemimin geri kalanını etkilemez ve tüm tarayıcılar için de çalışır, bu nedenle krom / ie vb.'de test yapmak da kolaydır.

Parçacığı burada, diğer kullanışlı apache numaralarını da buldum: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess

Müşterilerimin her zaman üretimdeki en son sürümü gördüğünden emin olmak için, js'deki sorgu dizesini her güncellemeye dahil ederiz, yani

jquery.somefile.js?v=0.5

Bu, müşterilerimin tarayıcılarını yeni bir sorgu dizesi gördüklerinde yerel önbelleklerini güncelleştirmeye zorlar, ancak dosya yeniden güncellenene kadar yeni kopyayı önbelleğe alır


3

En iyi strateji, sitenizi JS dosyalarınıza benzersiz bir URL oluşturacak şekilde tasarlamaktır. Bu, her değişiklik olduğunda sıfırlanır. Bu şekilde, değişiklik olmadığında önbelleğe alınır, ancak herhangi bir değişiklik olduğunda hemen yeniden yüklenir.

Özel ortam araçlarınıza göre ayarlamanız gerekir, ancak PHP / Apache kullanıyorsanız, hem siz hem de son kullanıcılar için harika bir çözüm.

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


3

Önbelleği atlayarak yeniden yüklemek için CTRL- tuşunu kullanabilirsiniz F5.

Firefox'ta önbelleği kullanmamak için tercihleri ​​ayarlayabilirsiniz

network.http.use-cache = false

Web sunucunuzu js dosyaları için no-cache / Expires / Cache-Control üstbilgileri gönderecek şekilde ayarlayabilirsiniz.

Apache web sunucusu için bir örnek .


shift-f5 veya ctrl-f5 mi?
Thilo

3

FireBug kullanıyorsanız, Ağ sekmesinin açılır menüsünde tarayıcının önbelleğini devre dışı bırakma seçeneği vardır.

resim açıklamasını buraya girin


Firebug üretilmiyor.
K7AAY

1

Gönderilen son iki çözümün artıları ve eksileri var, ancak ikisi de IMHO harika çözümler.

  1. Daha sıkı güvenlik için oturum kimliğinizin URL'nize gömülmesini isteyebilir veya istemeyebilirsiniz. Ama gelişimde bu önemli değil, ama ya kaldırmayı unutursanız? Ayrıca bu gerçekten işe yarıyor mu? Sıralı bir sayı üreteci gibi bir şeye ihtiyacınız olmaz mı?

  2. Bir oturum kimliği (veya sıralayıcı ne olursa olsun) eklemek, önbelleğe alınmasını istemediğiniz her kaynağa eklemeyi hatırlamanız gerektiği anlamına gelir. Bir yandan bu daha iyidir çünkü oturum kimliğinizi yalnızca aktif olarak geliştirdiğiniz ve test ettiğiniz kaynakla birlikte ekleyebilirsiniz. Öte yandan, bunu yapmak zorunda olduğunuzu ve bunu üretim için kaldırmayı hatırlamanız gerektiği anlamına gelir.

  3. Vhost.conf veya .htaccess dosyasını değiştirmek, oturum kimliğini eklemeyi ve kaldırmayı hatırlamaya gerek kalmadan hile yapar. Ancak olumsuz, tüm js ve css kaynaklarının performansından etkilenecektir ve büyük dosyalarınız varsa, bu sizi yavaşlatacaktır.

Her ikisi de harika, zarif çözümler gibi görünüyor - ihtiyaçlarınıza bağlı.


1

Gizlilik özelliğini etkinleştirerek önbelleğinizi temizlemenize, çerezleri vb. Bir kerede sıfırlamanıza olanak tanıyan CTRL- SHIFT- kullanıyorum DELETE. Onaylamanızı isteyen bir iletişim kutusu açmak yerine, bunu yalnızca YAPACAK şekilde yapılandırabilirsiniz.


1

Firefox'un daha yüksek sürümlerinde, Nightly gibi, "önbelleği devre dışı bırak" adlı bir seçenek var, dişliyi tıklayarak bulabilirsiniz. Ve bu seçenekler yalnızca geçerli oturumda çalışır, yani denetçiyi kapatıp yeniden başlattığınızda, yakalamanın devre dışı bırakılmasını istiyorsanız tekrar kontrol etmeniz gerekir.


Genel olarak önbelleği devre dışı bırakmanın bir yolu olsaydı. Müfettişi her açtığımda kontrol etmek çok can sıkıcı bir durum.
Carlos Garcia

0

Çeşitli alternatifler için 2 saatlik bir tarama yaptıktan sonra, bu benim için işe yaradı.

Benim gereksinim benim bahar güvenli web uygulamasında js ve css dosyaları önbelleğe devre dışı bırakmak oldu. Ancak aynı zamanda bu dosyaları belirli bir oturumda "içinde" önbelleğe alır.

Her istekte benzersiz bir kimlik iletilmesi önerilen yaklaşımlardan biridir.

Ve ben de bunu yaptım: - Yerine

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

kullandım

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

Yukarıdaki yaklaşım için herhangi bir eksilerini bekliyoruz. Güvenlik sorunları ?


0

Firefox 45'te, disk önbellek seçenekleri şu değer değiştirilerek ayarlanabilir: browser.cache.disk.enable

Değer, "about: config" sayfasında ayarlanabilir.

On http://kb.mozillazine.org/About:config_entries#Browser ben "browser.cache.disk.enable" için aşağıdaki açıklamayı bulundu:

Doğru (varsayılan): browser.cache.disk.capacity'de belirtilen kapasiteye kadar disk önbelleği kullanın Yanlış: Disk önbelleğini devre dışı bırakın (browser.cache.disk.capacity öğesini 0 olarak ayarlamakla aynı efekt)


0

Her şeyden önce, bu kolayca yapılabilir, örneğin PHP tarafından tarayıcıyı dosyaları önbellek tarihine (son kullanma süresi) göre yenilemeye zorlamak için. Sadece deneysel ihtiyaçlar için ihtiyacınız varsa, Firefox tarayıcısında tüm önbelleği bir kerede temizlemek için ctrl + shift + del tuşlarını kullanmayı deneyin. Üçüncü çözüm, zaman satırlarına dayalı olarak önbelleği temizlemek için Firefox için çıkan birçok eklenti kullanmaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.