Jaka jest różnica między performance.now()
i Date.now()
?performance.now() vs Date.now()
Czy powinienem rozważyć performance.now()
jako zamiennik dla Date.now()
, ponieważ performace.now()
jest bardziej spójny i niezależny?
Jaka jest różnica między performance.now()
i Date.now()
?performance.now() vs Date.now()
Czy powinienem rozważyć performance.now()
jako zamiennik dla Date.now()
, ponieważ performace.now()
jest bardziej spójny i niezależny?
Oba służą różnym celom.
performance.now()
to w stosunku do ładowania strony i bardziej precyzyjny w rzędach wielkości. Przypadki użycia obejmują testy porównawcze i inne przypadki, w których wymagany jest czas w wysokiej rozdzielczości, np. Multimedia (gry, audio, wideo itp.).
Należy zauważyć, że performance.now()
jest dostępny tylko w nowszych przeglądarkach (w tym IE10 +).
Date.now()
jest w stosunku do epoki Unix (1970-01-01T00: 00: 00Z) i zależy od zegara systemowego. Przypadki użycia obejmują tę samą starą manipulację datą od początku JavaScript.
Aby uzyskać więcej informacji, zobacz numery When milliseconds are not enough: performance.now
i now
method (Internet Explorer) - MSDN.
Oficjalna specyfikacja W3C można znaleźć tutaj: High Resolution Time API
Ta precyzja ma swój koszt. Jest o 50% wolniejsze. Dobrze wiedzieć, czy potrzebujesz go w ciasnej pętli. https://jsperf.com/perf-vs-date/1 – Eyal
Ups, miałem na myśli 80% wolniej. :-( – Eyal
Należy pamiętać, co kontrole google myśleć o date.now() https://developers.google.com/web/tools/lighthouse/audits/date-now – StLia
Date.now()
zwraca liczbę milisekund, jaki upłynął od 1 stycznia 1970 r 00:00:00 UTC, performance.now()
zwraca liczbę milisekund, z mikrosekund w części ułamkowej, od performance.timing.navigationStart
, początek nawigacji dokumentu, do połączenia performance.now()
. Inną ważną różnicą między Date.now()
i performance.now()
jest to, że te ostatnie są monotonicznie rosnące, więc różnica między dwoma połączeniami nigdy nie będzie ujemna.
Aby uzyskać więcej informacji, odwiedź stronę link.
Nie! 'Date.now()' zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970 00:00:00 UTC, 'performance.now()' zwraca liczbę milisekund/mikrosekund, które minęły od * arbitralnej epoki *. Zasadniczo, 'performance.now()' powinno być używane tylko wtedy, gdy chcesz zmierzyć względną odległość pomiędzy dwoma punktami czasowymi, a nie ich "absolutną" pozycję w czasie. –
Co mówi @buttifulbuttefly, plus ... 'performance.now' oferuje dokładniejszy pomiar czasu (precyzja poniżej milisekundy). – markE
Rzeczywiście, bardziej precyzyjne * taktowanie *, nie bardziej precyzyjne * czas *. – Amadan