Здравствуйте. Есть вот такой код:
function send(event, php){
console.log("Отправка запроса");
event.preventDefault ? event.preventDefault() : event.returnValue = false;
var req = new XMLHttpRequest();
req.open('POST', php, true);
req.onload = function() {
if (req.status >= 200 && req.status < 400) {
json = JSON.parse(this.response);
console.log(json);
// ЗДЕСЬ УКАЗЫВАЕМ ДЕЙСТВИЯ В СЛУЧАЕ УСПЕХА ИЛИ НЕУДАЧИ
if (json.result == "success") {
// Если сообщение отправлено
alert("Сообщение отправлено");
} else {
// Если произошла ошибка
alert("Ошибка. Сообщение не отправлено");
}
} else {alert("Ошибка сервера. Номер: "+req.status);}};
req.onerror = function() {alert("Ошибка отправки запроса");};
req.send(new FormData(event.target));
}
Мне нужно подкрутить к этой функции прогресс загрузки. Я дописала эти строки:
req.onprogress = function(event) {
console.log(event);
}
Но почему-то этот прогресс срабатывает лишь перед самим получением результата. Сложно объяснить, но грубо говоря:
жмёшь >
ждёшь секунд 5 >
потом за одну секунду в console записывается десяток (в зависимости от размера файла) строк >
и потом сразу срабатывает alert.
Вообще я предполагала, что это должно происходить по мере загрузки, а не в один момент, в виде полного отчёта. Может быть я допустила какую-то ошибку?