javascript - 另一个ajax正在运行时进行Ajax轮询

标签 javascript c# jquery ajax asp.net-mvc

我的页面上有一个表格。当您提交表单时,我会向服务器发送 Ajax 调用。服务器端是 C# asp.net

然后服务器上的 Controller 正在做一些事情并将当前状态保存到 session 中。 ajax 调用大约需要 3 分钟。

所以我想设置 ajax 轮询脚本,它会每 5 秒向服务器发送一次 ajax 请求,并从 Session 读取当前状态并更新前端。

问题是 ajax 轮询调用正在等待第一个 ajax 完成。

所以当第一个 ajax 正在运行并在服务器端做一些事情并更新 Session 中的当前状态时,我想要另一个轮询脚本同时从 session 中读取这个状态,但问题是它只是等待第一个 ajax完成。

这里有什么问题。我对 session 知之甚少,无法弄清楚问题是什么以及如何让它发挥作用。

function installation () {
    var intervalID = setInterval(function () { checkStatus() }, 5000);
    var data = {//some data};

    $.post("/WebDomain/Installation", data, function (result) {
        clearInterval(intervalID);
        console.log(result);
    });
};

function checkStatus()
{
    $.post("/WebDomain/GetInstallStatus", function (result) {
            console.log(result.Status);
    });
}

最佳答案

    function installation () {

        var data = {//some data};

        $.post("/WebDomain/Installation", data, function (result) {
           setTimeout(function(){ checkStatus(); }, 5000);
        });
    };

    function checkStatus()
    {
        $.post("/WebDomain/GetInstallStatus", function (result) {
               installation ();
        });
    }


   $(document).ready(function(){

    setTimeout(function(){ checkStatus(); }, 5000);

    });

希望对你有帮助

Explanation: after 5sec of your dom is ready checkStatus() will call,
if success only  installation (); will call 
In installation (); success we are again calling checkStatus(). 
now you can check some condition for breaking this iterations

关于javascript - 另一个ajax正在运行时进行Ajax轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36649112/

相关文章:

javascript - 使用核心选择器的 polymer - 如何使用数组设置选定值

c# - 换行的正则表达式

c# - Linq 表达式嵌套属性,与字符串比较

ASP.NET 页面方法与 Web 服务

javascript - "perfect scrollbar"在 iframe 上使用

javascript - 什么场景写一个脚本来动态地添加一个.current(active-like class)到一个元素?

javascript - 单击文本输入时该怎么做?

c# - 数据网格复选框单元格

javascript - Ajax成功返回

javascript - id 选择器与输入 :file