2012-12-15 31 views
6

OutputCache özniteliğiyle süslü bir ASP.NET MVC eylemim var, ancak sorun, MiniProfiler çıktısının da önbelleğe alındığıdır. MiniProfiler çıktısını önbellekten (donut deliğinden) hariç tutmak istiyorum, ancak MiniProfiler.RenderIncludes() gibi bir çağrıyı nasıl hariç tutacağımı bilmiyorum.Donut deliği önbelleği - MiniProfiler.RenderIncludes

Bunu nasıl yapabileceğimi bilen herkes?

+1

Önemli mi? Sayfa çıktı önbelleğinden geliyorsa, o zaman bu kadar profiler denilen eylem ve denetleyici bir şey göstermeyecekti, değil mi? – Aliostad

+0

Bu sunucu tarafı için gerçekten iyi bir nokta, ancak MiniProfiler ayrıca ilginç olacak DOM vb yük süresi hakkında bilgi verir. – larsw

cevap

6

Bu, üretimde MiniProfiler kullanılıyorsa önemli bir nokta. Bir sayfanın ilk ziyareti, MiniProfiler'ın etkinleştirildiği bir kullanıcı tarafından yapıldığı gibi, sonraki tüm istekler DOM'da MiniProfiler sonuçlarını içerecektir (önbelleğe alındığı için). Sonuçlar sadece yanlıştır (sadece ilk yüklemeyi dikkate aldığından), ancak tüm ziyaretçiler MiniProfiler sonuçlarınızı görebilecekler.

http://mvcdonutcaching.codeplex.com/

Bu OutputCache kullanırken önbelleğe olmayacak eylemleri eklemenizi sağlar:

Öncelikle, çörek delik önbelleğini etkinleştirmek için, ben yararlanarak ediyorum.

Yukarıdakileri göz önünde bulundurarak, Düzen sayfanızdan @using StackExchange.Profiling;'u kaldırabilirsiniz. Daha sonra değiştirebilirsiniz:

@MiniProfiler.RenderIncludes() 

olarak: Bir DoNotCache denetleyicisi, bu nedenle tüm önbelleklenebilir olmayan unsurlar bir araya vardır, ama bu gerekli değildir ve bu eylemi yerleştirebilirsiniz yarattık

@Html.Action("MiniProfiler", "DoNotCache", excludeFromParentCache: true) 

herhangi bir kontrolör.

@using StackExchange.Profiling; 
@{ 
    Layout = null; 
} 
@MiniProfiler.RenderIncludes() 

Bu uygun ve hatta DonutOutputCache notu kullanın yerlerde üretimde önbelleğe zaman MiniProfiler sonuçları görüntülenir sağlayacaktır:

public ActionResult MiniProfiler() 
{ 
     return View(); 
} 

Sonra görünümü kendisi gibi görünüyor.

+0

Teşekkürler - Tekrar bakacağım. – larsw