Asynchronous 剑道图:数据是通过AJAX还是在页面加载期间?

Asynchronous 剑道图:数据是通过AJAX还是在页面加载期间?,asynchronous,kendo-ui,kendo-asp.net-mvc,kendo-dataviz,Asynchronous,Kendo Ui,Kendo Asp.net Mvc,Kendo Dataviz,我正在使用Kendo DataViz(使用Complete for MVC),我想知道在一个页面(仪表板页面)上显示多个图表(在我的例子中是18个图表)的最佳方法是什么。我使用的是EF5、MVC4和.NET4 我应该在页面加载期间获取数据,这样只有一个响应包含所有必要的数据,还是我应该设置图表,以便每次通过AJAX获取数据,在这种情况下,页面加载响应后面会有18个AJAX请求?仅供参考,18个图表中的每一个都有自己的SP来请求其特定数据,因此不可能有少于18 DB的呼叫 我没有访问新的异步功能(

我正在使用Kendo DataViz(使用Complete for MVC),我想知道在一个页面(仪表板页面)上显示多个图表(在我的例子中是18个图表)的最佳方法是什么。我使用的是EF5、MVC4和.NET4

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

我没有访问新的异步功能(C#4.5任务类),但我想我可以使用AsyncController功能,虽然不太好,但仍然可以正常工作-这应该可以使18个AJAX调用几乎并行进行,即使所有请求都在同一时间触发。另一方面,我可以使用并行库在Page Load controller方法中并行调用18个SP

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


根据你的经验,我的直觉告诉我的是正确的吗?任何附加信息都将不胜感激。

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

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

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