Bir PhoneGap uygulamasından bir dosya yüklemek için aşağıdaki $ .ajax komutu kullanıyorum:XHR ilerleme olayı, yükleme tamamlanana kadar tetiklenmiyor mu?
function updateProgress(evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded/evt.total * 100;
console.log(percentComplete + "%");
}
}
$.ajax({
url: url,
type: "POST",
data: data,
cache: false,
dataType: "json",
processData: false,
contentType: false,
success: successCallback,
error: errorCallback,
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.addEventListener("progress", updateProgress, false);
return xhr;
}
});
yükleme çalışıyor. Bununla birlikte, ilerleme olayı, yükleme tamamlandıktan sonra yalnızca bir kez tetiklenir. Yükleme sırasında aslında ateş etmiyor - bu yüzden yükleme ilerlemesi gerçekten görüntülenmiyor. Yükleme yaparken sadece bir duraklama var ve sonra% 100 görüntüler.
Herhangi bir fikrim yanlış yaptığım şey nedir?
dosyanın boyutu nedir? –
Denediniz mi: xhr.upload.addEventListener ("progress", updateProgress, false); '? –
Dosya boyutu, bir çift megabayttır; bu, yüklemenin 1/2 saniyeden daha uzun sürmesine yetecek büyüklüktedir. Olay dinleyicisini xhr.upload'a eklemek, hiçbir şeylerin bile tamamen bitmesine neden olmaz. Teşekkürler! – user1031947