2015-01-04 8 views
7

पर हमेशा 0 है, मैं एक ही वेबसाइट के भीतर एक पृष्ठ से दूसरे पृष्ठ पर नेविगेट करने से पहले एक प्रगति पट्टी दिखाने की कोशिश कर रहा हूं।XMLHttpRequest प्रगति कुल क्रोम

मेरे समारोह XMLHttpRequest onprogress घटना के लिए एक UpdateProgress समारोह बांधता है और यह (xhr.readyState == 4 & & xhr.status == 200) यह सिवाय इसके कि क्रोम से पता चलता ठीक काम कर रहा है "कुल पर एक नया पृष्ठ पर रीडायरेक्ट "शून्य के रूप में जो प्रगति पट्टी ठीक से काम नहीं करेगा। मेरा कोड नीचे है।

अग्रिम धन्यवाद ...

$('.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

क्या क्रोम के लिए विशिष्ट समस्या है? –

+0

मुझे ऐसा लगता है ... क्योंकि मोज़िला e.total मान सही तरीके से दिखा रहा है। – B10

+0

बस चेक किया गया, आईई भी मूल्य प्रदर्शित करता है ... – B10

उत्तर

2

दो साल देर से, लेकिन इस सवाल विचारों का एक बहुत कुछ है लगता है और शायद उत्तर दिया जाना चाहिए।

this प्रश्न के मुताबिक एक gzipped प्रतिक्रिया हमेशा लंबाई होगी क्रोम में झूठी सेट करने योग्य। यह बहुत समझ में आता है क्योंकि आप जानते हैं कि पाइप के नीचे कितना संकुचित डेटा आ रहा है, लेकिन आपको यह नहीं पता हो सकता है कि संपीड़ित डेटा कितना विस्तार करेगा।

यह solution मेरे लिए एक अच्छा लगता है।