我的函数调用并执行多个php文件,其中$.ajax
和success:
用于下一个等等。到目前为止一直很好。
在某些执行之间,我希望暂停屏幕上显示的倒计时。不是在每个文件之间,所以我偶尔会在$.ajax
中的某些文件之间调用timer.php。
我的问题:在倒计时为零之前,JS回复成功(下一个文件将被执行)!
任何解决方案?
<?php
// timer.php
$p = rand(120,300); // 2 tot 5 minuten
?>
<div id="countdown"> </div>
<div id="weerverder">Weer verder...</div>
<script type="text/javascript">
window.onload = function() {
var countdownElement = document.getElementById('countdown'),
weerVerder = document.getElementById('weerverder'),
seconds = <?php echo $p; ?>,
second = 0,
interval;
weerVerder.style.display = 'none';
interval = setInterval(function() {
countdownElement.firstChild.data = 'Verwachte doorloop over ' + (seconds - second) + ' seconden...';
if (second >= seconds) {
weerVerder.style.display = 'block';
clearInterval(interval);
}
second++;
}, 1000);
}
</script>
更新
请求的AJAX部分(测试)
$(document).ready(function() {
var u, t;
var url = [
"",
"timer.php",
"test.php",
"timer.php",
"test.php",
"test.php",
"test.php",
"timer.php",
"test.php"
];
function startup(u, t) {
$.ajax({
url: url[u],
type: 'POST',
data: '',
cache: false,
timeout: 3600000, // timeout: 1 uur, security reason when hanging
success: function(response, status, xhr) {
if(status == 'success') {
$('#display').append(response + '<br>');
u+=1;
if(u < t) {
startup(u, t);
}
else {
$('#display').append('Klaar!<br>');
}
}
else {
alert(status+ ' - '+ xhr.status);
}
}
});
}
startup(1, 9)
});