是否有将大型订单列表退回给用户的最佳做法?
让我试着概述一下我们要解决的问题。我们有一个客户列表,每个客户有1-5,000个订单。我们直接从数据库中提取这些订单,并将它们呈现给用户是一个分页网格。我们的视图是一个非常简单的“从订单中选择列”,当我们第一次启动时工作正常,但随着我们的成长,它会导致性能/争用问题。似乎有一百万种方法可以给这只猫留下光泽(只返回一页数据,只返回最后6个月的数据等),但就像我之前说的那样,只是想知道是否有任何资源提供多一点抓住如何解决这个问题。
我们使用SQL Server作为事务数据库,并以XML格式选择数据。然后我们使用XSLT和Javascript的混合来创建我们的网格。我们没有与演示解决方案结合,但已与数据库解决方案结合。
答案 0 :(得分:4)
我的经历。
我希望我们做了所有这些事情。
答案 1 :(得分:0)
我建议进行一些分析以找出实际的瓶颈。也许您可以访问Visual Studio Profiler? http://msdn.microsoft.com/en-us/magazine/cc337887.aspx那里有很多优秀的人物。
否则,我的第一站是分页,以便从db中恢复较少的记录,这对连接和内存占用更容易。看看这个(我假设你在SQL Server上> = 2005) http://www.15seconds.com/issue/070628.htm
答案 2 :(得分:0)
我不确定您要解决的UI问题究竟是什么。
如果客户无法使用只是一个大的无定形blob的表,那么让他对字段进行排序:订单日期,订单号,SKU号,他的 SKU数字也许,我猜其他人也是。他也可能会发现 多列稳定排序 也很方便。
如果桌面标题向上滚动并在向下滚动订单时消失,那就更难了。阅读 the SO discussion,看看那里的方法是否提供了可以使用的解决方案。
还有一个JQuery机制用于将标题保持在视口中。
HTH
编辑:加上我第二个@Iain的回答:做一些分析。
另一个编辑: @Scott Bruns的回答提醒我,当我们开始设计UI时,到目前为止最大的问题是限制用户必须查看的记录数量。所以,是的,我同意Scott的意见,你应该给用户一些方法,从一开始就只能看到有限数量的记录;也就是说,在他看到一张桌子之前,他已经告诉了你很多他想看的东西。
答案 3 :(得分:0)
愚蠢的问题,但你有没有问过你的应用程序的用户输入他们最初想看的记录?