我有一个应用程序,它对外部端点有几个(4-7) WebService请求。加载每个请求需要2-5秒。请求使用ajax加载,并以部分视图的形式显示在页面上。
问题是,每个后续请求都等待上一个请求在启动之前完成。
Ajax允许我在不冻结页面的情况下在加载它们时显示它们,但是,是否有可能异步加载所有请求?可以同时加载所有部分视图吗?
发布于 2015-08-24 15:08:57
解决了。当应用程序启动并将它们存储在静态类中时,我现在启动所有服务:
public static class Settings
{
public static Dictionary<string, Task<Room>> informationHolder =
new Dictionary<string, Task<Room>>();
}
public ActionResult Index(){
foreach (var room in roomList)
{
int index = roomList.IndexOf(room);
Settings.informationHolder.Add(
roomList[index].Email,
System.Threading.Tasks.Task.Run(() => loadRoomData(roomList[index].Email)));
}
}
在此之后,我只需在我的部分意见中等待这项任务完成:
public async Task<ActionResult> _RoomMeetings(string roomEmail)
{
var room =
await Settings.informationHolder.FirstOrDefault(m => m.Key == roomEmail).Value;
}
瓶颈仍然是可能的,但应用程序加载速度要快2倍。
https://stackoverflow.com/questions/32182963
复制相似问题