1

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

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

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

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

谢谢

4

3 回答 3

1

Yes there is: Javascript timer But there are callbacks of ajax requests, which returns when the process is ended.

  $.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
            }           
   });

So you don't have to ping the server for gettind the info: "Are you ready yet?"

于 2013-06-26T08:42:16.353 回答
1

如何使用更简单的 jquery 版本

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

参数名称和时间是请求的元素,您可以在 .php 文件中像传统方式一样使用它们$_POST['name']

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

于 2013-06-26T08:47:53.060 回答
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 请求完成之前,上面的匿名函数不会运行。

于 2013-06-26T08:39:48.247 回答