2016-02-01 25 views
8

Tôi có đoạn code sauChrome được báo cáo một giá trị event.timeStamp sai (6 chữ số hoặc giá trị âm)

$("p").on("mousemove", function(event) { 
    $("p").text(event.timeStamp); 
}); 

Nó trả về một giá trị tích cực 9 chữ số trong cả Firefox và Edge nhưng trong Chrome chỉ có một chữ số Sáu số thập phân. Phiên bản Chrome của tôi là 43. Có gì sai ở đây?

EDIT: Tôi đã cập nhật phiên bản Chrome nhưng tôi vẫn nhận được giá trị thời gian âm hoặc số có sáu chữ số. Phiên bản Chrome của tôi bây giờ là 48. Tôi đang sử dụng Window 10 64 bit nếu có vấn đề.

EDIT 2: Khi tôi tải lại trang của mình, trong một khoảng thời gian ngắn giá trị là dương. Sau đó nó trở thành tiêu cực. Giá trị âm giảm theo thời gian và cuối cùng, nó trở nên tích cực và tiếp tục tăng.

+0

https://jsfiddle.net/arunpjohny/j7vg30q6/2/ trong 48 có vẻ như là –

+0

Nó trả về một số có nhiều chữ số hơn số đó (thử 13 thay vì 9). Dù sao, nếu độ dài được báo cáo là (hoặc là) chính xác, âm thanh sẽ là mili giây so với giây (ít hơn 3 chữ số) - mặc dù giá trị âm .. – user2864740

+0

Tôi thấy giá trị 'chính xác' trong Chrome 47, Windows 7 64bit. Có sử dụng 'new Date(). ValueOf()' trả về một kết quả hợp lý không? – user2864740

Trả lời

2

Trong chrome (phiên bản 48/49 ... m) event.timeStamp trả về một giá trị float, một cái gì đó giống như 18.000,123 ..

Tôi đã chỉ đơn giản là ngừng sử dụng event.timeStamp và thay vào đó tôi đã đưa Date.now(), không chính xác nhưng tránh vấn đề này.

reference

2

Có vẻ với tôi như event.timeStamp tại là vài phần nghìn giây kể từ khi tải trang chứ không phải là mili giây kể từ ngày 1 tháng 1 năm 1970 00:00:00 (như được định nghĩa trong đặc điểm kỹ thuật).

Tôi kiểm tra điều này bằng cách so sánh event.timeStamp đến performance.now() giống nhau.

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