Vin*_*mth 5 javascript ajax asp.net-mvc jquery
在传统的MVC 5 Web应用程序中,我希望用户能够在单击按钮后继续浏览,该按钮对长时间运行的操作进行ajax调用.
(注意:操作返回void- 我对响应不感兴趣)
当我单击按钮时,我无法发出任何其他请求,直到操作完成.
编辑:这是ajax代码:
$('#EmailReport') //
.click(function() {
$.ajax({
type: "POST",
url: '/Home/EmailReport',
complete: function() {console.log("done")},
async: true
});
});
Run Code Online (Sandbox Code Playgroud)
调节器
[HttpPost]
public async Task EmailReport()
{
// for testing - sleep for 10 seconds
await Task.Delay(TimeSpan.FromSeconds(10));
}
Run Code Online (Sandbox Code Playgroud)
以下是Chrome开发工具中的屏幕截图:
EmailReport是ajax调用,底部的两个请求是我试图浏览到另一个页面 - 因为你可以看到第一个请求是pending,任何后续请求是cancelled
有没有人有任何想法我如何解决或解决这个问题?
最简单的方法如下:
Task t = new Task(() => TimeSpan.FromSeconds(10));
t.Start();
Run Code Online (Sandbox Code Playgroud)
对于长时间运行的作业,最好使用任务而不是线程,以避免核心亲和性和更好的 CPU 利用率。
| 归档时间: |
|
| 查看次数: |
201 次 |
| 最近记录: |