是否有一个内置的asp.net的方式有条件地服务页面,例如我想以下逻辑:ASP.NET中是否有条件缓存?
如果我产生 一个页面,会话数据,如果没有会话数据 提供缓存页面。
我只想知道一个内置的asp.net机制。如果它不存在,我可能会手动缓存我的页面,并根据会话数据的可用性决定是否为每个请求提供服务。
是否有一个内置的asp.net的方式有条件地服务页面,例如我想以下逻辑:ASP.NET中是否有条件缓存?
如果我产生 一个页面,会话数据,如果没有会话数据 提供缓存页面。
我只想知道一个内置的asp.net机制。如果它不存在,我可能会手动缓存我的页面,并根据会话数据的可用性决定是否为每个请求提供服务。
我不认为有内置的支持(如varyByParam
)为会话数据的用户生成新鲜的输出。
正如你所建议的,我会建议手动缓存页面。我可能会确定用户的会话状态在Global.asax
的PreRequestHandlerExecute
事件处理程序,然后也许设置:
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
在karmabombing的风险,我真的不喜欢这种方法来缓存。
对于我来说,如果发出了GET请求,那么服务器应该以诚信回应。因为主要目标不是获得多余请求根本就不是 - 您不希望分配服务器/带宽资源句号。
缓存构成页面所涉及的资源的对象我完全可以得到支持,但是我看不到缓存页面批量的重要参数。
尊重标题。
您可能想看看.NET 2.0中的新替代控件(http://geekswithblogs.net/ranganh/archive/2005/05/04/39003.aspx),但它可能并不完全符合您的要求。
技术上来说,实体标签(HTTP 1.1)可以在这里使用,而不会违背你提到的(我同意)。 – 2009-05-28 09:27:51