【发布时间】:2017-07-22 11:09:14
【问题描述】:
我有一个网站,客户可以登录并购买特定范围内的产品(根据他们的客户编号)。导航栏有一个产品类别的下拉菜单,但没有显示任何没有产品的地方。
此时,在每个页面上查询数据库以填充产品类别菜单,但这感觉效率低下。我现在想知道“允许”产品列表是否应该在会话开始时存储在 cookie 或会话变量中。
根据我从其他问题中收集到的信息,通常会使用会话变量,但他们已警告不要在会话变量中存储大量数据。在这种情况下,我将为每个用户存储一个可能很大的产品列表,那么 cookie 会更好吗?我不会将产品列表归类为特别敏感,并且我会在下订单之前进行服务器端检查。还是我应该坚持每次都查询数据库的当前解决方案?
需要说明的是,我仍然会将信息存储在数据库中,这个问题只是询问临时存储以便在整个会话期间快速访问。
我已经查看了以下问题,但我仍然不觉得我已经完全得到了我的特定场景的答案,并且接近的问题没有提到 cookie。
【问题讨论】:
-
缓存。始终缓存。如果您只是想避免往返于数据库,那么会话和 cookie 绝不是合适的选择。
-
请有人告诉我为什么投反对票?
-
不确定,但一般来说,您的问题与 Stack Overflow 无关。
-
@ChrisPratt 我不确定这里和软件工程之间的关系,但选择这里是因为我遇到了其他问题。
-
哈哈。是的,所有这些也都是题外话。 Stack Overflow 是针对与编程过程中遇到的特定问题相关的问题:如何完成特定任务、解决错误等。这在软件工程中会更合适,因为它是一个更抽象的设计/实现问题。
标签: asp.net-mvc session cookies asp.net-mvc-5