我需要在ASP.NET MVC(5)应用程序的fortmat中显示一个包含计数的进度消息,
添加用户中的2个...
用户在网页中选择100个用户,然后单击“确定”(发布)按钮。我将所有100个帐户的Json POST发送到Controller(异步控制器)。
控制器通过forloop。完成for循环中的每个循环后,我需要在我的View中获得一个Json结果以显示进度数(100个中的1个,100个中的2个等)。 (1添加,2添加等)
这可能吗?推荐的方法是什么?
此外,在完成添加100个用户后,我需要获得完整的消息。
目前,我为每个用户发送json请求(从客户端处理循环)。但是,由于我的服务器端方法针对批量用户操作进行了优化,因此在我的上下文中存在一些效率低下的问题。
我要问的是,有没有办法发送Json(POST)请求并获得多个JSon响应,直到我决定何时退出客户端?
答案 0 :(得分:2)
Ajax请求只会获得Ajax响应,而不是很多。所以你不能直接想要做什么。
有几种可能的方法可以达到你想要的效果:
在服务器中创建可以检查进度的其他操作,并使用此操作创建JavaScript以轮询状态,直到操作完成。轮询包括定期检查服务器,因此您可以使用JavaScript setInterval
轻松完成,它会定期运行指定的回调,直到您取消它。
使用SignalR。在这种情况下,您可以直接从服务器向浏览器发送通知。
最后一个选项是将操作逐个发送到服务器,即使用第一个操作进行ajax调用,并在获得响应时发送第二个操作,依此类推。您甚至可以并行向服务器发送多个请求。