等到ajax叫做js倒计时准备就绪

时间:2015-10-10 13:42:09

标签: javascript php ajax

我的函数调用并执行多个php文件,其中$.ajaxsuccess:用于下一个等等。到目前为止一直很好。

在某些执行之间,我希望暂停屏幕上显示的倒计时。不是在每个文件之间,所以我偶尔会在$.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)

});

0 个答案:

没有答案