Не обрабатывает событие xhr.onprogress
Не обрабатывает событие xhr.onprogress, передаю метод, который описан внутри класса
class UploaderFile {
xhr;
start_time;
old_time;
speeds;
old_loaded;
constructor(key, input) {
this.start_time = new Date();
this.old_time = new Date();
this.speeds = [];
this.old_loaded = 0;
this.csrftoken = this.getCookie('csrftoken');
this.xhr = new XMLHttpRequest();
this.xhr.upload.addEventListener('progress', this.updateProgress, false);
this.xhr.addEventListener('load', this.transferComplete, false);
// this.xhr.onprogress = this.updateProgress
this.xhr.open('POST', 'upload_files', true);
this.xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
this.formData = new FormData();
this.formData.append('csrfmiddlewaretoken', this.csrftoken);
this.key = key;
this.input = input;
this.formData.append(key, input);
}
send() {
this.xhr.send(this.formData);
}
transferComplete(e) {
let speed_avg;
$.each(this.speeds, function (speed) {
speed_avg = speed + speed_avg;
});
this.speed_avg = speed_avg / this.speeds.length
console.log('comlid')
}
updateProgress(e) {
console.log('upload')
}
draw_percent(percent) {
let class_element = 'alert-message';
let form = $('#upload_form');
let in_form = $('<div>', {
'class': class_element,
text: 'Новый текст сообщения.'
});
let progress_bar = $('<progress>', {
});
if (form.find(in_form.className) <= 0) {
form.append(in_form)
};
if (in_form.find(progress_bar) <= 0){
form.append(progress_bar)
};
progress_bar.val(percent);
console.log(progress_bar.val());
in_form.css('border', '1px solid black');
}
getCookie(name) {
let cookieValue = null;
if (document.cookie && document.cookie !== '') {
let cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
let cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
}
Единственное что могу предположить - внутри класса XMLHttpRequest не правильно ссылается на методы моего класса
Источник: Stack Overflow на русском