Bir yükleme formu uygulamaya çalışıyorum ve xhr kullanarak kullanıcıya geri dönmek için yükleme durumunu döndürüyorum. Her şey doğru bir şekilde uygulanıyor gibi görünüyor, ancak yükleme yaparken, geri bildirimler çok hızlı gerçekleşiyor ve gerçekte gerçekleşmiş olandan çok daha yüksek bir yüzdeye geri dönüyor.XMLHttpRequest ilerleme olayı gerçek yüklemeden çok daha hızlı ilerler
~ < 20Mb dosyalarında, yükleme işlemi arka planda bir süre için kaybolmaya devam ederken hemen% 99'unu gösteren bir geri arama alıyorum.
Konsolu bir 74Mb dosyasından gösteren aşağıdaki screengrab dosyasına bakın. Yükleme başlatıldıktan birkaç saniye sonra çekildi ve yükleme 60 saniye daha devam etti (sadece 3 geri arama kaydı (yüklenen toplam boyut) (hesaplanan yüzdelik) ve ajax yüklemesi ile devam ediyor.
Bunu deneyimleyen biri, yükleme durumunun doğru bir şekilde temsil edilmesini sağladı mı?
İştebenim kod ('yük' olay yükleme işleminden sonra düzgün tetikler):
$(this).ajaxSubmit({
target: '#output',
beforeSubmit: showRequest,
xhr: function()
{
myXhr = $.ajaxSettings.xhr();
if (myXhr.upload)
{
console.log('have xhr');
myXhr.upload.addEventListener('progress', function(ev){
if (ev.lengthComputable) {
console.log(ev.loaded + " " + ev.total);
console.log((ev.loaded/ev.total) * 100 + "%");
}
}, false);
}
return myXhr;
},
dataType: 'json',
success: afterSuccess
});
Bu biraz garip gelebilir, ancak herhangi bir antivirüs yüklü mü? Varsa, antivirüs devre dışı bırakıldığında aynı davranış gözlenir mi? – raina77ow
Önerilerinizde bununla ilgili bir şeyiniz olabilir. Ben sadece ilk kez (benim iş bilgisayarında dev oldu) ev sahibi makinem (mac, antivirüs) denedim ve bir çekicilik gibi çalışır! Antivirüsünü çalışma bilgisayarında devre dışı bırakmaya gideceğim ve bunun herhangi bir etkisi olup olmadığını göreceğim. Başları için büyük teşekkürler! – Fraser
@ raina77ow Antivirüsün nedeni buna benziyor. İş makinemde devre dışı bıraktım ve şimdi harika çalışıyor. Teşekkürler. Cevabınızı aşağıda belirtin ve ödülünü vereceğim. – Fraser