Я получил 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);
?>