2015-01-04 6 views
7

同じウェブサイト内のあるページから別のページにナビゲートする前に進行状況バーを表示しようとしています。ChromeのXMLHttpRequestの進行状況の合計は常に0です

My機能はXMLHttpRequestをonprogressイベントへのUpdateProgress機能を結合し、それが(xhr.readyStateの== 4 & & xhr.statusの== 200)これは、クロームが表示されていることを除いて正常に動作しているようだ 「総に新しいページにユーザーをリダイレクトします"を0として、進捗バーが正しく機能するようにしません。私のコードは以下の通りです。

$('.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に固有の問題ですか? –

+0

私はそう思います...なぜなら、mozillaはe.total値を正しく表示しているからです。 – B10

+0

IEは値も表示します。 – B10

答えて

2

二年後半に...事前にありがとうございますが、この質問は、ビューの多くを持っているようだと、おそらく答えられるはずです。

質問this質問によると、gzippedレスポンスのChromeでlengthComputableは常にfalseに設定されます。圧縮されたデータがパイプからどれだけ下がっていくかを知ることができるため、圧縮されたデータがどのくらい拡大するかは分かりません。

このsolutionは私にとって良いもののようです。

関連する問題