Qual è la differenza tra performance.now()
e Date.now()
?performance.now() vs Date.now()
Devo considerare performance.now()
in sostituzione di Date.now()
poiché performace.now()
è più coerente e indipendente?
Qual è la differenza tra performance.now()
e Date.now()
?performance.now() vs Date.now()
Devo considerare performance.now()
in sostituzione di Date.now()
poiché performace.now()
è più coerente e indipendente?
Entrambi servono a scopi diversi.
performance.now()
è relativo al caricamento della pagina e più preciso in ordine di grandezza. I casi d'uso includono il benchmarking e altri casi in cui è richiesto un tempo ad alta risoluzione, ad esempio media (giochi, audio, video, ecc.)
Si noti che lo standard performance.now()
è disponibile solo nei nuovi browser (incluso IE10 +).
Date.now()
è relativo all'epoca Unix (1970-01-01T00: 00: 00Z) e dipende dall'orologio di sistema. I casi d'uso includono la stessa vecchia manipolazione delle date sin dall'inizio di JavaScript.
Vedere When milliseconds are not enough: performance.now
e now
method (Internet Explorer) - MSDN per ulteriori informazioni.
Il W3C spec ufficiale può essere trovato qui: High Resolution Time API
Questa precisione ha un costo. È più lento del 50%. Buono a sapersi se ne hai bisogno in un ciclo stretto. https://jsperf.com/perf-vs-date/1 – Eyal
Oops, intendevo l'80% più lento. :-( – Eyal
Tieni presente che cosa pensano i google audit su date.now() https://developers.google.com/web/tools/lighthouse/audits/date-now – StLia
Date.now()
restituisce il numero di millisecondi trascorsi dal 1 gennaio 1970 00:00:00 UTC, performance.now()
restituisce il numero di millisecondi, con microsecondi nella parte frazionaria, da performance.timing.navigationStart
, l'inizio della navigazione del documento, alla chiamata performance.now()
. Un'altra importante differenza tra Date.now()
e performance.now()
è che quest'ultima aumenta in modo monotono, quindi la differenza tra due chiamate non sarà mai negativa.
Per una migliore comprensione visitare il link.
No! 'Date.now()' restituisce il numero di millisecondi trascorsi dal 1 gennaio 1970 00:00:00 UTC, 'performance.now()' restituisce il numero di millisecondi/microsecondi trascorsi da * un'epoca arbitraria *. Fondamentalmente, 'performance.now()' dovrebbe essere usato solo quando si vuole misurare la distanza relativa tra due punti temporali, non la loro posizione "assoluta" nel tempo. –
Cosa dice @buttifulbuttefly, inoltre ... 'performance.now' offre un timing più preciso (precisione al millisecondo). – markE
Infatti, più preciso * tempistica *, non più preciso * tempo *. – Amadan