Bạn là chính xác trong các giả định của bạn.
Chỉ thị OutputCache của bạn đang yêu cầu cơ chế lưu vào bộ đệm đầu ra lưu vào bộ nhớ cache toàn bộ trang hiển thị cho một URL cụ thể, trong 600 giây. Trong ví dụ đơn giản của bạn, có thể bạn không sử dụng bất kỳ chuỗi truy vấn nào, khai báo VaryByParam trong chỉ thị cho phép bạn chỉ định tham số chuỗi truy vấn để đảm bảo mỗi giá trị khác nhau của tham số đó được lưu trữ riêng biệt. Ví dụ, nếu bạn có:
<%@ OutputCache Duration="600" VaryByParam="ProductID"%>
sau đó ba khác nhau URL sẽ từng được lưu trữ cá nhân, và thay đổi giá trị của "ProductID" tham số để một cái gì đó chưa được lưu trữ sẽ đảm bảo rằng trang được xử lý và hiển thị bởi các ASP.NET runtime một cách chính xác:
http://www.example.com/viewproduct.aspx?ProductID=123
http://www.example.com/viewproduct.aspx?ProductID=3
http://www.example.com/viewproduct.aspx?ProductID=67
trong ví dụ của bạn, trên nút nhấp chuột, trang đã được trả trước (và cached) và khi bạn gửi lại một lần nữa không có sự khác biệt trong URL mà bạn đang đăng tải trở lại và tải lại hiệu quả, do đó, thời gian chạy ASP.NET sẽ hiển thị trang được lưu vào bộ nhớ cache cho bạn mà không cần thông qua e quá trình tái rendering nó.
Khác với việc thay đổi giá trị của tham số "VaryByParam", chỉ thị OutputCache khá là một chút về cách tiếp cận "tất cả hoặc không có gì" đối với bộ nhớ đệm trang. Tuy nhiên, có một thuộc tính "VaryByContol" để chỉ thị, chỉ có thể được sử dụng trong các điều khiển người dùng ASP.NET, thay vì một trang web ASP.NET hoàn chỉnh.
Từ câu hỏi của bạn, có vẻ như bạn cần điều tra một phần lưu vào bộ nhớ cache của trang. Hoặc đó là một cơ chế để làm mất hiệu lực bộ nhớ cache khi một số sự kiện xảy ra. Việc này thường được thực hiện bằng cách thêm "phụ thuộc bộ nhớ cache".
Cho rằng, các liên kết sau đây sẽ giúp:
Caching Portions of an ASP.NET Page
Tip/Trick: Implement "Donut Caching" with the ASP.NET 2.0 Output Cache Substitution Feature
Programmatically Removing a Page from the OutputCache
Bạn có thể đăng một ví dụ nóng để sử dụng các thông số bài đăng của tôi dưới dạng VaryByParam không? – lnetanel
chắc chắn, <% @ OutputCache Duration = "600" VaryByParam = "YourPostParam1, YourPostParam2, (bất kỳ tham số GET nào), ..."%> – user134706
Chỉ cần tìm ra điều này trước khi tìm bài đăng này - chúng tôi đã thực sự gặp sự cố một bản giới thiệu trực tiếp vì chúng tôi đã đặt VaryByParam thành "không" nơi các trang được đăng lại cho chính họ! –