Ajax jQuery успешно возвращается через 10 секунд, когда он не должен - PullRequest
0 голосов
/ 04 марта 2011

Я получил ajax-вызов jQuery, который переходит к сценарию сервера backend.php и велит спать в течение 13 секунд (или более), прежде чем ответить простым тестовым сообщением.То, что я вижу, это запуск функции успеха ajax (с 200 ответами, замеченными в firebug) через 10 секунд без фактического ответа от сервера.Если я установлю задержку ответа менее 10 секунд, я получу ответное сообщение идеально.

Это то, что вы видели раньше?Происходит ли тайм-аут по умолчанию?

    ajaxcall = $.ajax({
    type: "GET",
    url: "backend.php",
    async: true,
    cache: false,
    dataType: 'json',
    timeout: 30000,
    /* Timeout in ms. Default to 30000 (30 seconds) */
    data: "TimeStamp=" + TimeStamp,
    success: function(data) {

        if (data !== null) {
            $('#TextHistory').append(data.message);

            if (data.timestamp != 0)
            {
              TimeStamp = data.timestamp;
            }
        }
        setTimeout(
        waitForMsg, /* Request next message */
        5000 /* ..after 5 seconds, default to 5000*/ );
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {

        $('#TextHistory').append('<p>Error:' + errorThrown + '</p>');

        setTimeout('waitForMsg()',"15000"); /* milliseconds (15seconds) default to 15000 */
    }
});

}

.. и на стороне сервера я просто делаю это:

<?php

header('Content-Type: application/json');

sleep(13);   // Changing this to test it. Will only work if less than 10

   $When = date("H:i:s",strtotime("now"));

   $response["message"] = "<p>Small Test $When</p>";

    $response["timestamp"] = 123456789;

   echo json_encode($response);

?>

1 Ответ

0 голосов
/ 04 марта 2011

Определенно время ожидания истекает через 10 секунд

Сделайте вызов phpinfo() на пустой странице и посмотрите, какие тайм-ауты установлены на

Посмотрите на max_execution_time для одного

Это просто необходимо переопределить в файле php.ini или в PHP напрямую

...