【发布时间】:2011-12-22 18:38:05
【问题描述】:
我正在构建一个工作网站,其中一个更重要的功能是显示数据的丰富内容网格。默认情况下,它每页仅显示 20 个项目,但我们在数据库中有大约 200 个项目可以过滤、排序和搜索。
我们的销售和营销团队还要求提供“列出所有”功能,以便他们可以在一个地方显示所有数据并滚动浏览而不是翻阅数据。
整个系统在服务器端使用 ASP.Net MVC,在客户端使用 jQuery 和 Flexigrid 构建,并使用 JSON 通过 AJAX 在两者之间交换数据。
我已经把实际的数据传输部分搞定了。包含 20 个结果的页面对整个请求需要 800 毫秒(通过 Flexigrid 向服务器发布请求并获取响应)。更多的是客户端处理需要一段时间。
我可以将一些客户端处理卸载到服务器。但这会使服务器端操作花费更长的时间,并使返回的文档的大小变得更大。在高速互联网连接的情况下这不是问题......但不一定是这种情况。
我的另一个选择是下载尽可能多的数据并将大部分数据处理转移到客户端。这将请求时间减少到基本上为零(仅获取更改的元素而不是整个数据集)。它在具有快速 CPU 和大量 RAM 的机器上运行良好,但也不一定如此。
由于至少有人将此标记为“不是一个真正的问题”,所以让我澄清一下......
- 我可以做些什么来缓解客户端处理时间问题,而不会将太多的处理转移到服务器上,最终导致数据传输时间问题?
- 在平衡客户端处理和服务器端处理方面有哪些最佳做法?
- 是在服务器端出错还是在客户端出错?
- 我可以使用哪些工具来更好地优化这些交换,以免事情继续出错?
【问题讨论】:
标签: asp.net-mvc ajax flexigrid