PHP while 循环问题在 iOS 5 Safari 中


PHP while loop issue in iOS 5 Safari

我有一个while循环,它在循环中使用usleep()函数做一些事情,如下所示:

    $x = 0;
    while ($x < 30)
    {
        $x += 1;
        usleep(200000);
    }
    echo 'done';

此脚本由 ajax 在后台通过以下方式调用:

    (function test() {
        $.ajax({
            type: 'POST',
            url: '/jq_test/txt.php',
            data: {text: $('#input').val()},
            async: true,
            success: function (data) {
                $('#table tbody').append(data);
                setTimeout(test);
            }
        });
    })();

我得到的问题是 safari 在循环进行时保持页面加载栏保持活动状态。仅当 x 等于 30 时,页面才会停止加载并回显"完成"。之后,按照我的预期在后台调用该脚本,并每 30*0.2 秒回显"完成"。为什么会这样?

我发现了问题所在。Ajax 请求一个包含while循环的.php文件。由于此脚本与页面本身同时被调用,因此 safari 5 将其理解为主页的一部分,直到循环完成才完成页面加载。