Tho*_*mas 6 session caching webforms asp.net-profiles
我们经常在asp.net webform项目中使用session,cache和profile.我们经常在asp.net webform项目中将数据存储在会话,缓存和配置文件中,但我想知道何时应该在会话中存储数据,或者何时应该存储在缓存和配置文件中.缓存或配置文件的范围是什么.这两个会话特定的生命周期或应用程序具体.
假设我是否在会话1中存储缓存或配置文件中的任何数据,那么我是否可以从session2访问该数据.当我们应该在会话,缓存和配置文件中存储数据时,请引导我使用场景和示例.谢谢
Ale*_*kiy 14
您cache通常希望在提高站点性能时使用:减少数据库调用,访问文件系统上的文件,调用外部服务等.
Scenario 1:假设有一个应用程序,其中有一个页面列出了存储在数据库中的所有产品.用户需要产品列表过滤功能(例如ebay或amazon).此外,众所周知,与产品列表页面使用频率相比,产品列表和产品功能很少变化.
Solution 1:这里可以cache用来减少数据库调用.您将产品列表和产品功能cache放在内存中执行过滤并避免冗余数据库调用.Cache应在产品列表或功能更改时失效.这个解决方案应该没问题,直到内存消耗处理比性能增益更便宜.
作为一个很好的资源,我建议阅读ASP.NET缓存:技术和最佳实践 MSDN文章.
在profile您通常保存特定于具体用户的数据,并且每次用户登录系统时都应该可用.
Scenario 2:考虑您拥有与之相同的应用程序,Scenario 1但现在您需要为用户提供保存其过滤器首选项的能力(最喜欢的过滤器列表类型).
Solution 2:您可以创建一种过滤器状态类并将其存储在用户中profile.因此,用户不会一次又一次地指定过滤器参数,并且每次用户登录时都可以使用这些首选项.
Session 用于存储可从所有网页访问的用户特定信息,下次用户登录时不需要这些信息.
Scenario 3:假设有一些电子商务应用程序和营销人员希望以近距离实时方式查看网站上发生的情况,即查看某些用户在登录时访问了哪些页面.将此方案视为选定的用户活动快照.
Solution 3:您可以在此处session记录用户访问的URL,然后为营销人员生成报告.
至于状态管理,您还可以访问另一篇MSDN文章ASP.NET状态管理概述.
另一个很好的答案突出了管理asp.net应用程序状态的对象之间的区别.
希望这对你有所帮助.