2012-03-06 24 views
16

Tôi cố gắng để sử dụng thuộc tính OutputCache trong ứng dụng MVC của tôi và nó không xuất hiện để làm việc khi tôi sử dụng OutputCacheLocation.Client:OutputCache Location = Khách hàng không xuất hiện để làm việc

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(); 
    }   
} 

Người đầu tiên không nhớ cache . Tôi nhấn trang mỗi giây và nó thay đổi thời gian. Cái thứ hai hoạt động. Nó chỉ thay đổi thời gian mỗi 15 giây. Có điều gì tôi đang thiếu? Tôi đang gỡ lỗi này bằng cách sử dụng IE8 và được xây dựng trong máy chủ phát triển trong Visual Studio.

+4

"Khách hàng" nghĩa đen là khách hàng, tức là IE. Vì vậy, nếu bạn nhấn trang theo cách thủ công, bạn không chơi theo các quy tắc; [caching phía máy khách nghĩa là bạn thậm chí không phải truy cập trang.] (http://msdn.microsoft.com/en-us/library/system.web.ui.outputcachelocation.aspx) – bzlm

+0

@bzlm những gì làm ý bạn là? Nếu tôi điều hướng đến/home/client sau đó đến một trang khác và quay lại/home/client. Tôi có nên phục vụ trang được lưu trong bộ nhớ cache không? (miễn là tôi đang ở trong khung thời gian?) – Joe

+1

@bzlm chờ đợi, tôi hiểu. nhấn F5 làm mất hiệu lực bộ nhớ cache, điều hướng từ/đến phục vụ cùng một trang. Tôi không biết điều đó. bạn nên đăng câu trả lời đó. Tôi đã được tìm kiếm trên tất cả các internet và không thể tìm thấy rằng tidbit – Joe

Trả lời

17

Nếu bạn nhấn F5 bạn đang xóa bộ nhớ cache của ứng dụng khách. Cách cache của client được cho là hoạt động là bạn có các liên kết trên trang trỏ đến hành động Client từ một số khung nhìn khác và khi người dùng nhấp vào các liên kết đó, phiên bản được lưu trong bộ nhớ cache sẽ được phân phối (giả sử tất nhiên anh ta làm điều đó trong khoảng thời gian cho trang nào được lưu trong bộ nhớ cache).

+1

Làm cho tinh thần. Nó cũng chỉ ra rằng nếu bạn chỉ cần gõ địa chỉ trong một lần nữa nó sẽ phục vụ lên phiên bản lưu trữ, nhưng bạn phải, F5 chỉ xóa bộ nhớ cache. – Dismissile

+2

@Dismissile, tôi cho rằng hành vi này hơi khác một chút so với trình duyệt, nhưng vâng, nói chung chỉ cần gõ địa chỉ sẽ tôn trọng bộ nhớ cache và F5 sẽ bỏ qua bộ đệm tạm thời * hoặc * loại bỏ tài nguyên được lưu trong bộ nhớ cache. – bzlm

+0

@bzlm Cảm ơn thông tin bổ sung. – Dismissile

Các vấn đề liên quan