2015-01-04 14 views
7

Tôi đang cố hiển thị thanh tiến trình trước khi điều hướng từ trang này sang trang khác trong cùng một trang web.Tổng số XMLHttpRequest onprogress luôn bằng 0 trên Chrome

chức năng của tôi liên kết với một chức năng UpdateProgress để XMLHttpRequest kiện onprogress và nó chuyển hướng người dùng đến một trang mới về (xhr.readyState == 4 & & xhr.status == 200) Có vẻ như làm việc tốt ngoại trừ việc Chrome sẽ hiển thị "tổng "là số không sẽ không cho phép thanh tiến trình hoạt động đúng cách. Mã của tôi là dưới đây.

Cảm ơn bạn trước ...

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

Vấn đề cụ thể đối với Chrome? –

+0

Tôi nghĩ vậy ... bởi vì mozilla đang hiển thị giá trị e.total chính xác. – B10

+0

Chỉ cần kiểm tra, IE hiển thị giá trị quá ... – B10

Trả lời

2

Hai năm cuối, nhưng câu hỏi này dường như có rất nhiều quan điểm và có lẽ cần được trả lời.

Theo câu hỏi this câu trả lời được gzipped sẽ luôn có độ dàiPhù hợp được đặt thành sai trong Chrome. Điều này tạo ra rất nhiều ý nghĩa bởi vì bạn có thể biết có bao nhiêu dữ liệu nén hơn đang đi xuống đường ống, nhưng bạn không thể biết được dữ liệu nén sẽ mở rộng đến mức nào.

Điều này solution có vẻ như là một điều tốt đối với tôi.

Các vấn đề liên quan