C# 优化购物车数据库调用

C# 优化购物车数据库调用,c#,sql-server,asp.net-mvc,entity-framework,C#,Sql Server,Asp.net Mvc,Entity Framework,购物车项目被分组并显示为链接。例如,一个用户有一组“T恤”。当他单击该链接(“T恤”)时,会弹出一个引导模式窗口,其中所有T恤都列为右侧的链接,并且所选(列表上第一个)T恤的所有详细信息(图片、尺寸、价格等)都显示在左侧 现在,当用户单击任何其他链接(在该模式窗口内)以查看不同t恤衫的详细信息时,会向数据库发出请求。普通用户可以在几分钟内发出100多个请求,检查他的资料并反复检索相同的数据,这在我看来是浪费资源 我的问题是-我如何优化这个过程? 我是否可以加载所选组的所有数据,并在用户每次单击其

购物车项目被分组并显示为链接。例如,一个用户有一组“T恤”。当他单击该链接(“T恤”)时,会弹出一个引导模式窗口,其中所有T恤都列为右侧的链接,并且所选(列表上第一个)T恤的所有详细信息(图片、尺寸、价格等)都显示在左侧

现在,当用户单击任何其他链接(在该模式窗口内)以查看不同t恤衫的详细信息时,会向数据库发出请求。普通用户可以在几分钟内发出100多个请求,检查他的资料并反复检索相同的数据,这在我看来是浪费资源

我的问题是-我如何优化这个过程? 我是否可以加载所选组的所有数据,并在用户每次单击其他项目时将其传递到模式窗口? 如果是,我应该将这些数据存储在哪里

据我所知,会话变量仍然需要一些我希望避免的服务器端工作。 在这种情况下,cookies是一种方法吗?或者这是一种过度的行为,我根本不应该被打扰


谢谢

你说“检查他的资料,一遍又一遍地检索相同的数据,这在我看来是浪费资源。”但这实际上是浪费资源吗?您是否衡量了获取这些数据的性能?这对您的服务器是一种压力吗?您的数据库是否因查询而过载?除非你能对所有这些都说“是”,否则你是在过早地优化。如果数据不是每个用户的,那么它就不属于会话。应用程序本身可以存储数据,如果每个人的数据都相同,则可以使用缓存对象来处理。或者,如果您愿意,您可以将其全部发送到浏览器,具体取决于数量。但正如@Tony所说,如果你现在没有问题,现在就不要花时间优化它。@Tony-对,这绝对是一个过早的优化,因为这是我第一个将投入使用的真实世界项目。不知道是否需要(优化,而不是项目^^)。。“您衡量了获取此数据的性能了吗?”-我知道的唯一方法是LINQpad(~00:00.050)中几乎所有查询的执行时间。“您的数据库是否因查询而过载?”-如何在共享主机上检查此问题?@Sami是每个用户的数据,因为我们谈论的是一个普通的私人购物车。“将其全部发送到浏览器”-请您澄清一下好吗?考虑保存已请求的数据(客户端和/或应用程序缓存,视情况而定),这样至少您不必在定义的某个生存期内对相同的数据进行db调用。。。Hth@tereško你又一次疯狂编辑了吗?整个frontpage充满了您对
asp.net
+
model view controller
asp.net mvc
的编辑。请考虑编辑和投票在您编辑的帖子,而不是垃圾邮件整个FrontPage。