5

Từ những gì tôi hiểu History.js là một hình nhiều cho HTML5 History/State APIs. Do đó, trên các trình duyệt hiện đại, bạn chỉ cần sử dụng popstate để nghe các thay đổi URL. Vì vậy, lý do tại sao trên Chrome mới nhất tôi có thể xem hẹn giờ kích hoạt mỗi 250ms? Có vẻ như lãng phí và kích hoạt bộ thu rác mỗi vài giây.Tại sao history.js sử dụng setInterval (.., 250)?

Kiểm tra chính thức History.js demo này.

History.js demo page firing timer every 250ms

+0

Tại sao bạn không sử dụng JS gốc? – RomanGorbatko

+1

@RomanGorbatko Chúng tôi cần hỗ trợ [IE9 và các trình duyệt Android cũ hơn] (http://caniuse.com/#feat=history). Vì vậy, sử dụng một polyfill là cần thiết (không phải là nó?). –

+0

Tôi không nhận được bất kỳ Bản ghi hẹn giờ được ghi nào trong chrome mới nhất – NavaRajan

Trả lời

0

Tôi không biết mã History.js, nhưng đọc qua nó, tôi tin rằng @apsillers là đúng.

Được định cấu hình trong khoảng thời gian 250ms giữa các mục hàng đợi. Một số hàm xếp hàng trong hàng đợi đó đòi hỏi phải nắm lấy trạng thái History. Các mục này buộc xả nước để tạm dừng bằng cách gọi nó là bận.

Tại sao điều này xảy ra trong trình duyệt HTML5 cũng với tôi có vẻ là History.JS không chỉ chuyển đổi một chuyển đổi nếu đó là HTML5 và sau đó không làm gì cả. Trên github của nó biểu một trong những Mục đích của họ là:

Cung cấp trải nghiệm cross-tương thích với mọi loại trình duyệt HTML5 (tất cả họ đều thực hiện các API Lịch sử HTML5 một chút khác nhau gây ra hành vi khác nhau và đôi khi lỗi - History.js khắc phục điều này đảm bảo trải nghiệm giống như mong đợi/giống như/tuyệt vời trong suốt các trình duyệt HTML5)

Nếu History.js vẫn đang thực hiện một số công việc liên quan đến xếp hàng, tôi đoán họ sẽ sử dụng thời gian chờ bận.

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