0

我正在使用 Kendo DataViz(使用 Complete for MVC)并且想知道在单个页面(仪表板页面)上显示多个图表(在我的情况下为 18 个图表)的最佳方法是什么。我正在使用 EF 5、MVC 4 和 .NET 4。

我应该在页面加载期间获取数据,以便只有一个包含所有必要数据的响应,还是将图表设置为每个通过 AJAX 获取数据,在这种情况下,页面加载响应之后会出现 18 个 AJAX 请求?仅供参考,18 个图表中的每一个都有自己的 SP 来请求其特定数据,因此没有少于 18 个 DB 调用。

我无法访问很酷的新异步内容(C# 4.5 任务类),但我想我可以使用不太好但仍然可以使用的 AsyncController 内容——这应该使 18 个 AJAX 调用几乎并行进行,即使所有请求同时被触发。另一方面,我可以使用 Parallel 库在 Page Load 控制器方法中并行调用 18 个 SP。

我的直觉是,使用 AJAX 可能会给用户带来更好的感知性能,但使用 Page Load 可能会提供更好的实际性能。

根据你的经验,我的直觉告诉我正确的事情吗?任何其他信息也将不胜感激。

4

1 回答 1

1

我会将所有图表设置为通过 AJAX 加载。不仅初始页面加载是即时的,而且图表的加载本质上是异步的,因为多个 AJAX 调用将同时发生(这不像一次加载一个图表)。

如果可以在单个查询中检索所有 18 个图表的数据,我会建议这样做,但由于情况并非如此,因此没有理由阻止整个页面等待 18 个存储过程运行。以增量方式加载页面将提高其感知性能。

此外,如果您通过 18 种不同的操作方法公开图表数据,还会有额外的好处。例如,您可以在操作方法级别应用输出缓存,将某些图表缓存 15 分钟,将其他图表缓存 1 小时等。

于 2013-08-04T06:12:12.043 回答