javascript – 为什么我在进行ajax调用后无法浏览其他页面?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么我在进行ajax调用后无法浏览其他页面?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在传统的MVC 5 Web应用程序中,我希望用户能够在单击按钮后继续浏览,该按钮对长时间运行的操作进行ajax调用.

(注意:操作返回void – 我对响应不感兴趣)

When I click the button I am unable to make any other requests until the action completes.

编辑:这是ajax代码

$('#EmailReport') //
    .click(function() {
        $.ajax({
            type: "POST",url: '/Home/EmailReport',complete: function() {console.log("done")},async: true
        });
    });

调节器

[HttpPost]
public async Task EmailReport()
{
   // for testing - sleep for 10 seconds
   await Task.Delay(TimeSpan.FromSeconds(10));
}

以下是Chrome开发工具中的屏幕截图:

Ajax request

EmailReport是ajax调用,底部的两个请求是我试图浏览到另一个页面 – 因为你可以看到第一个请求正在等待并且任何后续请求都被取消

有没有人有任何想法我如何解决解决这个问题?

最佳答案
最简单的方法如下:

Task t = new Task(() => TimeSpan.FromSeconds(10));
t.Start();

对于长时间运行的作业,最好使用Task作为线程,以避免核心关联和更好的cpu利用率.

猜你在找的jQuery相关文章