【问题标题】:Kendo Charts: data via AJAX or during page load?剑道图表:通过 AJAX 或页面加载期间的数据?
【发布时间】:2013-08-03 22:08:25
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: asynchronous kendo-ui kendo-asp.net-mvc kendo-dataviz


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多