Javascript从c#方法获得进展
我有一个MVC项目,在我看来,我得到了一个指向控制器中返回可下载文件的方法的链接 我的方法从各种API下载数据,并将数据处理到一个文件中。此方法需要10-15分钟才能完成 我想在我看来展示进步,什么是最好的方式?我应该在方法设置的控制器中使用全局变量,并使用异步javascript循环来获取这些值吗 如果有什么好方法可以从api请求中获得进展,我将使用以下方法:Javascript从c#方法获得进展,c#,asp.net-mvc,progress,C#,Asp.net Mvc,Progress,我有一个MVC项目,在我看来,我得到了一个指向控制器中返回可下载文件的方法的链接 我的方法从各种API下载数据,并将数据处理到一个文件中。此方法需要10-15分钟才能完成 我想在我看来展示进步,什么是最好的方式?我应该在方法设置的控制器中使用全局变量,并使用异步javascript循环来获取这些值吗 如果有什么好方法可以从api请求中获得进展,我将使用以下方法: var httpWebRequest = (HttpWebRequest)WebRequest.Create(DataValu
var httpWebRequest = (HttpWebRequest)WebRequest.Create(DataValues.xx + "url/" + label + "/" + UUID + "?action=" + act);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "PUT";
httpWebRequest.Credentials = new NetworkCredential(DataValues.user, DataValues.password);
httpWebRequest.PreAuthenticate = true;
<>对于真正长时间运行的进程,您可以考虑使用Sigaalr之类的东西来发送状态更新。 因此,与其点击链接索取文件(并让浏览器在那里等待10分钟的响应),您可以:
“你已经做到了”(它连接了事物的信号机端)
HTH可能使用signal,但使用诸如XSockets之类的东西和长时间运行的控制器听起来更合适。首先,由于该进程运行时间很长,但也因为它可以向任何特定的客户机发送状态/信息数据。 另一个原因是XSockets支持Signal不支持的二进制数据。
我认为XSockets的最新版本是商业版,但以前的版本可以免费使用。将您的状态保存到会话变量中,每x秒使用ajax查询一次状态,然后更新视图;-)您的API方法必须定期发送状态(以百分比或其他形式),然后您需要在jQuery中轮询更新(或者如果您使用的是HTML5,请利用服务器发送的事件)。