2008-09-25 23 views
5

Đối tượng ngày trong JavaScript thực hiện các máy khác nhau với máy và trình duyệt đến trình duyệt liên quan đến độ phân giải của hàm tính bằng mili giây. Tôi đã tìm thấy hầu hết các máy có độ phân giải khoảng 16 ms trên IE, trong đó Chrome hoặc Firefox có thể có độ phân giải cao tới 1ms.Trong JavaScript, có nguồn thời gian nào có độ phân giải nhất quán tính bằng mili giây không?

Có chức năng nào khác có sẵn cho JavaScript nói chung hoặc IE cụ thể là sẽ cung cấp độ phân giải thời gian tốt hơn không? Tôi đang cố gắng bẫy và ghi lại keyDownkeyUp lần trong mili giây và cần trong phạm vi +/- 10 ms trở xuống.

Để xem minh họa về điều này, hãy xem phần "độ phân giải của ngày mới()" của trang này. Có một bảng có nút kiểm tra đánh giá độ phân giải thời gian JavaScript của máy/trình duyệt hiện tại tính bằng mili giây. Thật thú vị, Chrome thường xuyên nhận được độ phân giải 1ms.

http://www.merlyn.demon.co.uk/js-dates.htm#OV

quest của tôi là một ngày thời gian phương thức JavaScript sẽ cung cấp cho phụ 10ms độ phân giải trên các trình duyệt. một cái gì đó để thay thế hoặc cải thiện Date().

Trả lời

0

AFAIK, mili giây tương đương với JavaScript. Đây là số Mozilla.org documentation for the Date object. Không có gì trong đó cho thấy bất cứ điều gì với độ phân giải tốt hơn.

+0

Đồng ý - Tôi đang tìm kiếm với Internet Explorer rằng độ phân giải tốt nhất tôi thấy là 16ms ve cho đối tượng Date() trong javascript. Tìm kiếm một cái gì đó trên IE với độ phân giải tốt hơn sau đó. Độ phân giải 1ms, nhất quán trên các trình duyệt, sẽ làm rung chuyển! – WillR

2

Vì bạn đang đề cập đến Internet Explorer, tôi cho rằng bạn đang làm việc trên Windows. Độ phân giải 15 ms bạn nhận được có thể phải thực hiện với độ phân giải hẹn giờ hệ thống Windows.

Tôi cũng đã nhận thấy thông qua việc chạy các chương trình Java trên Windows, rằng độ phân giải của bộ hẹn giờ hệ thống là khoảng 16 ms hoặc lâu hơn. (Sử dụng phương pháp System.currentTimeMillis().)

Tôi đã tìm kiếm khá để xem liệu tôi có thể tìm thấy bất kỳ thông tin nào về độ phân giải hẹn giờ hệ thống trong Windows hay không và có thể tìm thấy liên kết đến Inside Windows NT High Resolution Timers từ TechNet. Nó đề cập một chút về độ phân giải của hệ thống hẹn giờ Windows:

Windows NT căn cứ tất cả các hỗ trợ hẹn giờ nó tắt của một hệ thống đồng hồ ngắt, mà theo mặc định chạy ở một granularity 10 phần nghìn giây. Đây là do đó độ phân giải của tiêu chuẩn Bộ tính giờ Windows.

(Tôi giả định rằng Windows XP và Vista vẫn có hẹn giờ cùng, hãy xem xét nó là một hậu duệ của NT.)

Trừ khi Firefox và Chrome có riêng timer có độ phân giải cao của họ thực hiện, tôi tin rằng độ phân giải tốt nhất mà bạn có thể nhận được từ trình duyệt trên nền tảng Windows sẽ diễn ra khoảng 10 mili giây.

Mặc dù không liên quan đến câu hỏi này, tôi cũng đã tìm thấy một bài báo trên MSDN về tính giờ có độ phân giải cao trên Windows: mplement a Continuously Updating, High-Resolution Time Provider for Windows

2

thời gian độ phân giải cao là trên một máy tính để bàn vẫn là một chủ đề mở.

Các hệ điều hành phổ biến cho đến giờ chỉ cung cấp cho bạn độ chi tiết là 10 ms, vì đó là tần số của đồng hồ hẹn giờ bị gián đoạn. Bạn sẽ tìm thấy 10 ms cũng trong trang manpage của Linux, ví dụ. Trình duyệt sẽ chỉ hiển thị bộ hẹn giờ do hệ điều hành cung cấp, với chi phí nội bộ trình duyệt bổ sung.

Điều đó nói rằng, có thể đạt được mức độ chi tiết cao hơn. Nhưng tất cả các kỹ thuật này đều dành riêng cho việc thiết lập phần cứng và bạn không thể mong đợi chúng được hiển thị thông qua JavaScript trong tương lai gần.

+0

Tôi không biết về hệ điều hành, nhưng các trình duyệt dường như giữ mức tối thiểu 10ms, ngoại trừ google chrome có tối thiểu 1 ms: http://ejohn.org/blog/javascript-in-chrome/ – enobrev

+0

Đọc đăng nó nghe có vẻ như Chrome đạt được điều này với sự chờ đợi bận rộn. – ypnos

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