Thuộc tính timeStamp
của giao diện Event
cho biết thời gian diễn ra một sự kiện nhất định.
Trong các phiên bản Chrome trước 49, giá trị timeStamp
này được biểu thị dưới dạng DOMTimeStamp
, tức là số nguyên tính bằng mili giây kể từ thời gian bắt đầu của hệ thống, gần giống với giá trị mà Date.now()
trả về.
Kể từ Chrome 49, timeStamp
sẽ là giá trị DOMHighResTimeStamp
. Giá trị này vẫn là một số mili giây, nhưng với độ phân giải micrô giây, nghĩa là giá trị sẽ bao gồm một thành phần thập phân. Ngoài ra, thay vì giá trị tương ứng với thời gian bắt đầu của hệ thống, giá trị này tương ứng với PerformanceTiming.navigationStart
, tức là thời điểm người dùng di chuyển đến trang.
Bạn có thể thấy lợi ích của việc tăng độ chính xác của dấu thời gian trong các ví dụ sau:
Những điều cần cân nhắc trên nhiều trình duyệt và phiên bản cũ
Nếu có mã hiện có so sánh các giá trị Event.timeStamp
từ hai sự kiện, bạn không cần phải điều chỉnh mã khi chuyển sang DOMHighResTimeStamp
. Hơn nữa, trên các trình duyệt hỗ trợ DOMHighResTimeStamp
, mã hiện có của bạn sẽ được hưởng lợi từ độ chính xác tăng lên của micrô giây, cũng như trên thực tế DOMHighResTimeStamp
được đảm bảo tăng đơn điệu, bất kể đồng hồ hệ thống có thay đổi vào giữa quá trình thực thi trang web hay không.
Nếu thay vì so sánh hai giá trị Event.timeStamp
, mã của bạn
cần xác định một sự kiện đã diễn ra cách đây bao lâu, thì bạn có thể so sánh trực tiếp giá trị
DOMHighResTimeStamp
mới với
performance.now()
.
Và nếu cần chuyển đổi Event.timeStamp
thành số mili giây tuyệt đối kể từ thời gian bắt đầu của hệ thống, bạn có thể lấy giá trị đó bằng cách thêm DOMHighResTimeStamp
vào performance.timing.navigationStart
.
Trong cả hai trường hợp đó, DOMTimeStamp
và DOMHighResTimeStamp
đều hoạt động khác nhau, nhưng bạn có thể đơn giản hoá mã trên nhiều trình duyệt bằng cách dùng chức năng chuyển đổi này, với sự hỗ trợ của Majid Valipour. Phương thức này lấy đối tượng Event
làm tham số và trả về một giá trị giống DOMHighResTimeStamp
, sẵn sàng để so sánh với performance.now()
hoặc được thêm vào performance.timing.navigationStart
.