2012-03-06 17 views
16

benim MVC app OutputCache özellik kullanmak çalışıyorum çalışmak görünmüyor ve ben OutputCacheLocation.Client kullandığınızda çalışmak görünmüyor:OutputCache Yer = Müşteri

public class HomeController : Controller 
{ 
    [OutputCache(Duration=15, Location=OutputCacheLocation.Client)] 
    public ActionResult Client() 
    { 
     ViewBag.Message = "The current time is " + DateTime.Now.ToString("hh:mm:ss"); 

     return View(); 
    } 

    [OutputCache(Duration=15, Location=OutputCacheLocation.Any)] 
    public ActionResult Any() 
    { 
     ViewBag.Message = "The current time is " + DateTime.Now.ToString("hh:mm:ss"); 

     return View(); 
    }   
} 

birincisi önbelleği değil . Sayfayı her saniyede vururum ve zamanı değiştirir. İkincisi çalışır. Sadece 15 saniyede bir zaman değiştirir. Kaybettiğim bir şey mi var? IE8 ve Visual Studio'da yerleşik geliştirme sunucusunu kullanarak hata ayıklama yapıyorum.

+4

"İstemci" tam anlamıyla istemci, yani IE anlamına gelir. Yani sayfayı manuel olarak vurursanız, kurallara uymuyorsunuz demektir; [istemci tarafı önbelleğe alma, sayfaya vurmanızın gerekmediği anlamına gelir.] (http://msdn.microsoft.com/en-us/library/system.web.ui.outputcachelocation.aspx) – bzlm

+0

@bzlm ne yapar? Diyorsun ki? Eğer/home/client'a başka bir sayfaya gidersem ve/home/client'a geri dönersem. Önbelleğe alınan sayfaya servis olmamalı mıyım? (Zaman dilimi içinde olduğum sürece?) – Joe

+1

@bzlm bekle, görüyorum. F5'e basmak, önbelleği geçersiz kılar ve/veya aynı sayfada gezinmek için gezinir. Bunu bilmiyordum. Bunu cevap olarak göndermelisin. İnternette her yerde arama yaptım ve – Joe

cevap

17

F5 ürününü tıklatırsanız, istemci önbelleğini atarsınız. İstemci önbelleğinin çalışma şekli, sitenin diğer görünümlerden Client eylemine işaret eden bağlantılara sahip olmanız ve kullanıcının bu bağlantıları tıklatması önbelleğe alınmış sürümün sunulacağı şeklindedir (tabi ki, sayfa önbelleğe alınır).

+1

Anlam veriyor. Ayrıca, adresi tekrar girerseniz, önbelleğe alınmış sürümü sunacaktır, ancak haklısınız, F5 önbelleği temizler. – Dismissile

+2

@Dismissile, bu davranışın tarayıcı tarafından biraz farklı olduğunu düşünüyorum, ancak evet, genellikle sadece adresin yazılması önbelleğe saygılı olacak ve F5 ya önbelleği geçici olarak dikkate almayacaktır * veya * önbelleğe alınmış kaynağı tahliye edecektir. – bzlm

+0

@bzlm Ek bilgi için teşekkürler. – Dismissile

İlgili konular