我有一个php / jQuery网站,它提供了在异步模式下在服务器上启动进程的方法。
当我点击特定链接时,服务器通过php启动一个进程并返回一个页面,告诉该进程已启动并显示一个沙漏。
如果我们点击沙漏,则会有一个ajax查询询问服务器进程是否结束。
但是有可能,以及如何使用jQuery或纯javascript来定时器每隔30秒自动检查一次服务器(发送相同的ajax查询)?当过程结束时,计时器应该停止。
由于
答案 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文件的响应将在数据变量
中重新获得答案 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请求之前,上述匿名函数不会运行。