ASP.NET缓存对象使用情况

ASP.NET缓存对象使用情况,asp.net,Asp.net,在aspx页面上,我必须加载一个下拉列表,其中包含一些来自DB的值。在页面生命周期中,将数据放置在什么位置以保持其价值最正确 Cahce对象? 一场 视图状态 更多详情: 这些数据存储在数据表中 行也可以是200 这些数据都是用于过滤gridView项的字符串 如果数据不经常更改,缓存它是一个好主意。如果它定期更改,那么我不会这样做(因为您将经常清除和重新加载缓存,这是一种浪费) 在每个会话或viewstate中保存它并不能为您带来太多的性能提升,因为这些都是在用户的请求中表达出来的。我讨厌v

在aspx页面上,我必须加载一个下拉列表,其中包含一些来自DB的值。在页面生命周期中,将数据放置在什么位置以保持其价值最正确

Cahce对象? 一场 视图状态

更多详情:

  • 这些数据存储在数据表中
  • 行也可以是200
  • 这些数据都是用于过滤gridView项的字符串

如果数据不经常更改,缓存它是一个好主意。如果它定期更改,那么我不会这样做(因为您将经常清除和重新加载缓存,这是一种浪费)


在每个会话或viewstate中保存它并不能为您带来太多的性能提升,因为这些都是在用户的请求中表达出来的。我讨厌viewstate,但是如果您不能像我上面提到的那样缓存,viewstate是最合适的位置。

如果数据获取成本很高,并且对所有用户都一样,则缓存

会话,如果数据获取成本很高且取决于用户

如果数据获取成本低,则什么也得不到


查看状态,如果数据位于管理页面或流量无关紧要的地方(内部网站,很少访问的页面)。200行可能有点太多。

数据的有效期是多久?页面寿命?会话生命周期?应用程序生命周期?回答这个问题,你就有了答案:)你什么时候装载物品?ASP.NET将已经在处理数据的持久性(使用ViewState),除非您将其注入客户端?数据因用户而异,获取成本相当高,但如果页面很少访问或项目部署在内部网络中,则只能从源中获取一次(页面加载)数据,请转到ViewState。顺便说一句,您可以对每个用户的数据使用缓存,但您必须以某种方式将密钥基于用户id或用户名。在这种情况下,我不确定会话是否优于缓存。它取决于用户界面的流程和您可靠地清除会话变量(因为如果用户在站点上处于活动状态,该变量将不会过期)的能力,从而完全控制会话对象。我选择session,也是因为要存储在某个地方的数据只属于页面。因此,在页面加载中,我可以处理它。顺便说一句,如果同一用户的不同请求中的数据可能不同,那么您应该确保用户没有理由打开页面两次(在不同的选项卡中),因为这可能会弄乱数据。数据可能会在每个页面上更改,并且对所有用户都不常见。你为什么讨厌这个国家?