2009-05-28 33 views
0

是否有一个内置的asp.net的方式有条件地服务页面,例如我想以下逻辑:ASP.NET中是否有条件缓存?

如果我产生 一个页面,会话数据,如果没有会话数据 提供缓存页面。

我只想知道一个内置的asp.net机制。如果它不存在,我可能会手动缓存我的页面,并根据会话数据的可用性决定是否为每个请求提供服务。

回答

2

我不认为有内置的支持(如varyByParam)为会话数据的用户生成新鲜的输出。

正如你所建议的,我会建议手动缓存页面。我可能会确定用户的会话状态在Global.asaxPreRequestHandlerExecute事件处理程序,然后也许设置:

HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
0

在karmabombing的风险,我真的不喜欢这种方法来缓存。

对于我来说,如果发出了GET请求,那么服务器应该以诚信回应。因为主要目标不是获得多余请求根本就不是 - 您不希望分配服务器/带宽资源句号。

缓存构成页面所涉及的资源的对象我完全可以得到支持,但是我看不到缓存页面批量的重要参数。

尊重标题。

+0

技术上来说,实体标签(HTTP 1.1)可以在这里使用,而不会违背你提到的(我同意)。 – 2009-05-28 09:27:51