Tôi muốn có thể đặt thời gian hết hạn dài cho một số mục nhất định mà người dùng tải xuống qua yêu cầu GET.Cách tốt nhất để làm việc với tiêu đề Expires trong ASP.NET MVC?
Tôi muốn nói 'điều này tốt trong 10 phút' (nghĩa là tôi muốn đặt tiêu đề Hết hạn trong 10 phút). Các yêu cầu là các đoạn HTML được hiển thị trong trang thông qua AJAX và chúng tốt cho phiên của người dùng. Tôi không muốn quay lại máy chủ và nhận 304 nếu họ cần chúng một lần nữa - Tôi muốn bộ nhớ cache của trình duyệt ngay lập tức cung cấp cho tôi cùng một mục.
Tôi tìm thấy một bài viết gần một tuổi về số MVC Action filter caching and compression. Điều này tạo ra một ActionFilter tùy chỉnh để thay đổi tiêu đề hết hạn. Tôi đã sử dụng bộ lọc nén mà làm việc tuyệt vời cho một số css tùy chỉnh tôi đang tạo ra (tỷ lệ nén 94%!).
Tôi có hai mối quan tâm chính:
1) Tôi có thực sự phải sử dụng phương pháp này hay không. Tôi tốt với nó nếu tôi làm, nhưng là có thực sự không có chức năng trong MVC hoặc chức năng OutputCache để làm điều này cho tôi? Trong 'truyền thống' ASP.NET tôi đã luôn luôn chỉ cần thiết lập các tiêu đề hết hạn bằng tay, nhưng chúng tôi không thể làm điều đó nữa - ít nhất là không có trong bộ điều khiển.
2) Nếu tôi sử dụng phương pháp lọc này - nó sẽ can thiệp vào chính sách OutputCache chút nào - mà tôi muốn có thể kiểm soát trong web.config. Tôi là loại suy nghĩ hai là loại trừ lẫn nhau và bạn sẽ không muốn cả hai - nhưng tôi không hoàn toàn chắc chắn.
@craig nhờ cho đầu vào của bạn. tôi đoán quy tắc ngón tay cái liên quan đến số 2 là nếu chế độ xem được tạo rất đơn giản (nghĩa là không có quyền truy cập cơ sở dữ liệu) thì hết hạn có thể là tất cả những gì cần thiết. nếu mười cuộc gọi phương thức web được yêu cầu thì bạn sẽ muốn sử dụng OutputCache. đôi khi bạn muốn đầu VÀ đuôi phải :-) –
Hãy xem xét: Nếu 10 người (trên các máy tính khác nhau) yêu cầu trang của bạn 10 lần, hết hạn có nghĩa là hành động của bạn chạy 10 lần và máy chủ xử lý 10 yêu cầu. Caching một mình có nghĩa là hành động của bạn chạy một lần và máy chủ xử lý 100 yêu cầu. Hết hạn và bộ nhớ đệm cùng nhau có nghĩa là hành động của bạn chạy một lần và máy chủ xử lý 10 yêu cầu. –