如何从Web浏览器检查异步进程的结束?

时间:2013-06-26 08:36:06

标签: jquery asynchronous

我有一个php / jQuery网站,它提供了在异步模式下在服务器上启动进程的方法。

当我点击特定链接时,服务器通过php启动一个进程并返回一个页面,告诉该进程已启动并显示一个沙漏。

如果我们点击沙漏,则会有一个ajax查询询问服务器进程是否结束。

但是有可能,以及如何使用jQuery或纯javascript来定时器每隔30秒自动检查一次服务器(发送相同的ajax查询)?当过程结束时,计时器应该停止。

由于

3 个答案:

答案 0 :(得分:1)

是的,有:Javascript timer 但是有一些ajax请求的回调,它们在进程结束时返回。

  $.ajax({
            type: "POST",
            url: "process.php",
            data: dataString,
            dataType: "json",
            success: function(response) {         
                //this returns when your ajax process is ended with no error.          
            },
            error: function (xhr, ajaxOptions, thrownError) {
                //this returns when ajax process ended with error
            }           
   });

所以你不必ping服务器来获取信息:“你准备好了吗?”

答案 1 :(得分:1)

如何使用更简单的jquery版本

$.post("test.php", { name: "someName", time: "2pm" })
.done(function(data) {
  alert("Data Loaded: " + data);
});

参数名称和时间是请求的元素,您可以像。$_POST['name']

这样的传统方式在.php文件中使用它们

并且.php文件的响应将在数据变量

中重新获得

答案 2 :(得分:0)

jQuery AJAX助手将为异步请求完成时可以执行的回调提供工具。

根据http://api.jquery.com/jQuery.get/

$.get('ajax/test.html', function(data) {
    $('.result').html(data);
    alert('Load was performed.');
});

在完成对test.html的GET请求之前,上述匿名函数不会运行。