jQuery来检查异步任务的状态


jQuery to check status of a asynchronous task

我正在与一个web服务交互,并且我正在将ajax方法与jQuery一起使用。

为了与web服务交互,我有一个php文件"process.php",它根据请求状态生成3个不同的值,(0)表示挂起的进程,(1)表示成功,(2)表示失败。

问题:如何使用jQuery继续检查作业状态,直到它从0变为1或2?

我对如何完成这件事感到困惑。

任何关于我可以去做这件事的想法都会很有帮助:)

感谢您的帮助

您应该连续轮询process.php以不断检查其响应

类似这样的东西:

function getProcessStatus() {
    $.get('process.php', function(response) {
        //Do something with the response, like storing it into a variable
        if(response.status == 0) {
            setTimeout(getProcessStatus, 1000);
        }
    });
}

这会执行第一个GET请求,然后在成功后,如果进程仍处于挂起状态,则会安排在一秒钟后再次执行。

还要注意的是,您也可以使用一些更复杂的解决方案,如websocket,以便实时更新流程的状态,但在我看来,如果您没有任何实时要求,这个解决方案就足够简单了。