Próbuję użyć atrybutu OutputCache
w mojej aplikacji MVC i nie wydaje się do pracy, gdy używam OutputCacheLocation.Client
:OutputCache Lokalizacja = Klient nie wydaje się działać
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();
}
}
Pierwszy z nich nie buforuje . Co sekundę trafiam na stronę, a ona zmienia czas. Drugi działa. Zmienia czas tylko co 15 sekund. Czy jest coś, czego mi brakuje? Debuguję to przy użyciu IE8 i wbudowanego serwera programistycznego w Visual Studio.
"Klient" oznacza dosłownie klienta, tj. IE. Więc jeśli trafisz stronę ręcznie, nie grasz według reguł; [buforowanie po stronie klienta oznacza, że nie powinieneś nawet trafić na stronę.] (http://msdn.microsoft.com/en-us/library/system.web.ui.outputcachelocation.aspx) – bzlm
@bzlm co zrobić masz na myśli? Jeśli przejdę do/home/client, a następnie do innej strony i z powrotem do/home/client. Czy nie powinienem otrzymać obsługiwanej strony z pamięci podręcznej? (tak długo jak jestem w ramach czasowych?) – Joe
@bzlm czekaj, rozumiem. naciśnięcie klawisza F5 unieważnia pamięć podręczną, nawigacja z/służy do tej samej strony. Nie wiedziałem o tym. powinieneś opublikować to jako odpowiedź. Przeszukałem cały Internet i nie mogłem znaleźć tego ciekawostka. – Joe