1

我有一个仪表板视图,可以加载几个独立的局部视图。每个局部视图大约需要四分之一秒的时间来加载(是的,它们可能会被优化),但我想找到一种方法来多线程加载这些局部视图,以使加载速度更快。

现在,为了快速渲染屏幕,我们首先加载一个基本视图,<div id="myWidget">每个部分视图/小部件都有一个部分,我们在其中填写“正在加载数据......”然后,在每个部分的 javascript看,我们再次调用 jQuery 来加载相关数据。当它回来时,我们用myWidget局部视图替换原始跨度。

我希望所有这些小部件都能并行工作。你怎么做呢?

4

2 回答 2

0

您的设置的问题是浏览器只能同时对同一个 Web 服务器进行这么多的同时调用。因此,虽然您可以一次创建大量 ajax 请求,但通常一次只有 2-10 个(取决于浏览器、操作系统)会处于活动状态。其余的人排队等候,直到其他人完成。

我个人认为,您现在通过初始 ajax 请求加载的所有数据都应该由第一个请求(加载页面的那个,而不是第一个 ajax 请求)预加载。然后可以在之后单独完成来自客户端的任何更新。

于 2013-05-08T15:17:49.993 回答
0

您可以尝试进行一次 ajax 调用,然后为所有小部件准备数据。In action 方法进行异步调用以并行准备数据。参考http://www.asp.net/mvc/tutorials/mvc-4/using-asynchronous-methods-in-aspnet-mvc-4#SampleApp

然后将所有数据作为模型传递给视图,使用不同的局部视图来渲染每个小部件并返回混搭视图作为响应。

在客户端,成功调用 ajax 后,将整个仪表板/小部件区域替换为您作为响应收到的数据。

于 2013-05-08T15:14:07.967 回答