2015-01-04 5 views
7

Aynı web sitesindeki bir sayfadan diğerine geçmeden önce bir ilerleme çubuğu göstermeye çalışıyorum.XMLHttpRequest onprogress total Chrome'da her zaman 0'dır

Benim işlevi XMLHttpRequest OnProgress olaya bir UpdateProgress işlevini bağlar ve (xhr.readyState == 4 & & xhr.status == 200) O Krom göstermesi haricinde iyi çalışıyor görünüyor "toplam yeni sayfaya yönlendirir "Sıfır olarak ilerleme çubuğunun düzgün çalışmasına izin vermez. Kodum aşağıda.

$('.ajaxNavi').click(function (e) { 
    e.preventDefault(); 
    var url = $(this).attr('href'); 
    var xhr = new XMLHttpRequest(); 
    xhr.onprogress = updateProgress; 
    xhr.onreadystatechange = function() { 
    if (xhr.readyState == 4 && xhr.status == 200) 
    // REDIRECT HERE 
    } 
    }); 
    xhr.open("GET", url, true); 
    xhr.setRequestHeader("Content-Type", "text/html"); 
    xhr.send(); 
}); 

function updateProgress(e) { 
    console.log(e.loaded + ' ' + e.total); 
} 
+0

Chrome'a ​​özgü bir sorun mu var? –

+0

Sanırım ... çünkü mozilla e.total değeri doğru gösteriyor. – B10

+0

Sadece kontrol edildi, IE değeri de görüntüler ... – B10

cevap

2

İki yıl sonlarında ... şimdiden teşekkürler, ancak bu soru çok sayıda görüntüleme gibi görünüyor ve muhtemelen cevaplandırılacaktır.

this sorusuna göre, bir gzip yanıtın her zaman Chrome'da false olarak ayarlanmış uzunluk uzunluğuna sahip olacaktır. Bu çok anlam ifade ediyor çünkü borunun ne kadar sıkıştırılmış verinin geleceğini biliyor olabilirsiniz, ancak sıkıştırılmış verilerin ne kadar genişleyeceğine dair hiçbir fikriniz olamaz.

Bu solution bana göre iyi görünüyor.