Предыстория: мне нужно отслеживать ответы сервера в реальном времени и выводить их на страничку
клиент - пример
var last_response_len = 0;
$.ajax("mailer.php", {
xhrFields: {
onprogress: function(e) {
var this_response,
response = e.currentTarget.response;
if(!!last_response_len === false) {
this_response = response;
last_response_len = response.length;
} else {
this_response = response.substring(last_response_len);
last_response_len = response.length;
}
console.log("pis data: " + this_response);
}
}
}).done(function(data) {
console.log("end : " + data);
}).fail(function(data) {
console.log("error: ", data);
});
console.log("request send.");
и вот, что у меня происходит, если не использовать usleep выводятся на экран две записи первая пустая вторая первая запись массива.
если использовать задержку то по ведение такое, при секундной задержке рассылается 300 писем потом отваливается по таймаут
если использовать примерно четверть секунду рассылается примерно 100-150 писем и так же отваливается.
Из-за чего клиент не успевает обрабатывать ответы сервера?