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