2016-03-29 18 views
0

Bu sorunun daha önce sorulmuş olduğundan eminim, ancak tamamen aynı şeyi bulamıyorum.Azure javascript'in önbelleğe alınmasını temizle

Çok sayıda javascript dosyası kullanan bir masmavi bulut hizmetim var. Hala siteyi geliştiriyorum ve javascript dosyaları sık sık değişiyor. Javascript dosyaları değiştiğinde, kodu yeniden çalıştırmadan önce 'Geçici internet dosyaları ve web sitesi dosyaları' seçeneğini seçerek tarama geçmişimi temizlerim. Ancak, web sitesi javascript dosyalarına kararlılıkla tutunmuş gibi görünüyor ve eski kodu çalıştırmaya devam ediyor. Bu, Chrome, IE ve Firefox'ta bir sorundur. Tarama geçmişimi temizlerseniz birkaç kez sonunda yeni kodu bulur.

Yeni sürümler için js dosyalarının yolunu değiştirerek dosyaları yeniden yüklemek için tarayıcıyı zorlamak için yollar olduğunu biliyorum. Ancak sadece sınanıyor ve her defasında birkaç satır kod değiştirdiğimde dosya adlarını güncellemek istemiyorum. Bu yüzden tarayıcıdaki önbellekleri temizlemenin bir yolunu istiyorum.

Ayrıca dosyalarım için bir html5 çevrimdışı önbellek kullanıyorum, bu da ek bir karmaşıklık olabilir.

Eski javascript dosyamı nasıl temizlerim? Bunu programlı olarak yapabilir miyim?

+0

Sayfaları veya salt html'yi oluşturmak için asp.net'i kullanıyor musunuz? – Wish

+0

Birkaç asp sayfam var ama sayfalarımın çoğu –

+1

html'dir. Programatik olarak (istemci tarafında) bu yapılamadığından eminim. Önbellek yapmamak için sunucuda yapılabilir. Ben hala düşünüyorum, js bir get parametre ekleme dahil olmak üzere en kolay olurdu, ' '' 123' bir zaman damgası olabilir ve dosyaları güncelleştirdiğinizde değiştirin . Grid ya da homurdanan ile bu parametreleri kolayca güncelleyebileceğinizi düşünüyorum. – Wish

cevap

0

Bu yolu birkaç kez aştım ve ne olursa olsun, istisnasız olarak, çalışan yöntem bir sorgu dizesi değişkeni eklemektir. Bu nedenle, pek çok çerçevenin (ör., Jquery, açısal) ajax için sorgu dizesine bir önbellek bozma tarihine dayalı değer katacağıdır). Diğer her yöntem bir baş ağrısına veya bir diğerine, tarayıcı tutarsızlıklarına, rastgele hatalara neden oldu, çünkü bir dosya güncellendi, ancak diğeri değişmedi.

İşte ASP.NET içinde Açısal kullanıyor Şu anda bu kullanıyorum bir örnek: Yerel değişken (@v) dosya üzerinde bir sorgu dizesi değerini ayarlamak için

@{ 
    var v = Request.IsLocal ? DateTime.Now.Ticks : ViewBag.Version; 
} 

<script>var version = "@v"; 
<script src="/[email protected]"></script> 

Ben kullanıcı ve ben de kullanabilirsiniz şablonlar ve diğer dosyalar için js içinde kullanılabilen genel bir JavaScript değişkeni ayarlamak.

Yerel olarak çalışıyorsam, her zaman her dosyanın en son sürümünü alırım. Dağıtım yaptıktan sonra, sürüm numarası uygulama başlangıcında (otomatik artırım amacıyla oluşturma sürümünü kullanarak) ayarlanır; böylece dağıtılan her sürümün farklı bir sürüm numarası olur).

ben!

... Bu gerekecektir değişmedi bazı dosyalar yeniden yüklenmesi dezavantajı var, ama bu yüzlerce kullanıcı (sayfayı yeniden f5 vurmak) anlatmaya çalışmaktan daha iyi Bunun çevrimdışı önbelleği nasıl etkileyeceğinden emin değilim, ancak aynı şeyin geçerli olabileceğini düşünüyorum.