2011-07-21 32 views
5

Tôi đang đăng ký sự kiện onProgress khi tải lên tệp qua XHR. Thanh tiến trình của tôi là hoạt hình (thông qua jQuery) để cung cấp một thẩm mỹ thị giác tốt hơn.Tần suất xhr.upload.onProgress cháy như thế nào?

onProgress dường như bắn rất nhanh, vì vậy tôi tự hỏi bao lâu thì nó thực sự bị sa thải vì vậy mà tôi bằng cách nào đó có thể đưa ra một quá trình mà nhờ đó tôi có thể tăng tốc phản ứng để này để tôi có thể có một liên tục hoạt hình thanh tiến trình

Trả lời

2

_.throttle(function, wait)

Gạch dướiJS có các tiện ích cho chức năng điều chỉnh.

Số tiền thực tế onProgress số lượt truy cập được kích hoạt là trình duyệt cụ thể, do đó cách tốt nhất là điều tiết cuộc gọi lại thực tế về giải pháp dựa trên thời gian.

7

Trong khi mở rộng jQuery có thể có lợi; cho một cái gì đó jQuery mở rộng đơn giản này không đáng giá. Giải pháp hiệu quả để hạn chế các cuộc gọi chức năng có thể được viết là:

xhr.upload.onprogress = function(event) { 
    // limit calls to this function 
    if (!this.NextSecond) this.NextSecond = 0; 
    if (Date.getTime() < this.NextSecond) return; 
    this.NextSecond = Date.getTime() + 1000; 

    // this code gets executed at least one second apart from the last time 
} 
Các vấn đề liên quan