asp.net - 在 session 中存储购物车

标签 asp.net session

我知道对于购物车商品等信息的普遍共识是将它们存储在 session 中。但是,属于某个用户且可以被其他用户更改的对象又如何呢?比如说,一个类似 eBay 的网站。如果您在 session 中存储用户的“项目”,其中包含当前的出价金额,并且另一个用户进入并对该项目进行出价,则您必须更新数据库中的项目以及 session 中的项目,你不会吗?

在这种情况下,唯一的选择是存储在 session 中并在其他用户采取的任何操作影响某人的 session 值时刷新,或者将所有内容存储在数据库中并每次检索它(如果您有每个页面侧面板上显示的出价)。

最佳答案

我会将其全部存储在数据库中并每次都检索它。根据数据的波动性,可能需要缓存几秒钟。最大的问题是保持两者一致。

我认为每次检索数据并不像您想象的那么昂贵。如果您根据键进行查找,数据库会非常高效。我会在简单性方面犯错误(存储在数据库中并检索),直到在负载下(即在负载测试中)出现性能问题。

如果只有几次,您也许可以使用应用程序缓存(除非您有多个工作进程/服务器)并确保数据库和缓存保持同步。

关于asp.net - 在 session 中存储购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/297576/

相关文章:

javascript - 模态弹出窗口在 UpdatePanel 中不起作用

c# - Visual Studio 调试器,在 ASP 经典页面启动 w3wp 时未加载符号

session - Internet Explorer 中的 Codeigniter 登录、 session 和重定向问题?

PHP 登录和处理 session 安全

ruby-on-rails-3 - 注销不工作导轨 3.2

c# - "Remember Me"在服务器上不工作

asp.net - session 变量对象在回发时被删除 - ASP.NET

c# - 获取重写请求的 URL?

asp.net - 我是否需要新的 PayPal API 来支持 .Net 服务器上的 TLS 1.2?

python - 使用 Python mechanize 通过登录屏幕