Trong quá khứ khi tôi đã triển khai RSS, tôi đã lưu trữ dữ liệu RSS trong HttpContext.Current.Cache.
Dữ liệu RSS thường không phải cập nhật thường xuyên (ví dụ: một lần mỗi phút là quá đủ), do đó bạn chỉ phải thực sự nhấn DB một lần mỗi phút thay vì mỗi lần ai đó yêu cầu dữ liệu RSS của bạn .
Dưới đây là một ví dụ về cách sử dụng bộ nhớ cache:
// To save to the cache
HttpContext.Current.Cache.Insert("YourCachedName", pObjectToCache, null, DateTime.UtcNow.AddMinutes(1), System.Web.Caching.Cache.NoSlidingExpiration);
// To fetch from the cache
YourRssObject pObject = HttpContext.Current.Cache[("YourCachedName"] as YourRssObject : null;
Bạn cũng có thể thiết lập sau đây trong ashx của bạn:
context.Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));
Điều này sẽ làm cho trang RSS của bạn phục vụ lên một phiên bản cache cho đến khi nó hết hạn. Điều này có ít tài nguyên hơn nhưng nếu bạn có những thứ khác sử dụng các cuộc gọi lớp truy cập dữ liệu RSS thì điều này sẽ không lưu dữ liệu đó.
Bạn cũng có thể làm cho nó bộ nhớ cache dựa trên một param truy vấn mà RSS của bạn có thể nhận được cũng bằng cách thiết lập:
context.Response.Cache.VaryByParams["YourQueryParamName"] = true;
Tôi đánh giá cao nhận xét ... nhưng họ không trả lời câu hỏi của tôi ... gợi ý ng hoặc chỉ tạo một tệp tĩnh? – sebagomez
Tất cả các nguồn cấp dữ liệu tôi đã thực hiện đã sử dụng một trong các phương pháp này. Tôi chưa bao giờ sử dụng một tập tin tĩnh vì nó rất dễ dàng để không phải lo lắng về việc phải viết mới/thay thế các tập tin trên bay. – Kelsey