[58]
05 Авг 2014, 12:36

JavaScript jQuery как получить xhr.upload.onprogress

Привет!

Начиная с jQuery 1.5 в нем реализован свой объект HttpXmlRequest, который гарантированно содержит все нужные свойства. Но на самом деле не все. Из-за войны браузеров в нем нет свойства upload, которое нужно для получения события прогресса загрузки.

Вопрос в том, как работать с прогрессом из jQuery?

#javascript, #jquery

Комментарии (1)
fullzilla
07 Авг 2014, 16:55
#

Можно переопределить объект HttpXmlRequest, указать, что бы jQuery работал с вашей версией. Делается очень просто:

var fileInput = $('#my_file_input').get(0);

var sendData = new FormData();
sendData.append('image', fileInput.files[0]);

$.ajax({
async: true,
crossDomain: false,
cache: false,
type: "POST",
url: '/ajax/file/upload/',
data: sendData,
dataType: "json",
contentType: false,
processData: false,
context: this,
xhr : function()
{
var request = $.ajaxSettings.xhr();

requst.upload.onprogress = function(event) {
if(event.lengthComputable) {
var progress = Math.floor((event.loaded / event.total) * 100);
console.log(progress);
}
}

return request;
},
success : function(json)
{
console.log('Finish');
},
error: function(server)
{
console.log('Error');
}
});

Добавить комментарий

Войдите, чтобы написать о чем-нибудь...
Вход Регистрация
Web.onRails
Здесь вы можете спросить или написать обо всём, что касается Веб-разработки.
написать о чем-нибудь...
Метки: