2016-06-18 14 views
8

Sono nuovo di Nodejs e io sono confuso su qualcosa quando tempistica:performance.now di Javascript() e Nodejs

Se Nodejs è Javascript, allora perché performance.now di Javascript() non funziona su Nodejs e sono costretto a usare console.time() o simili?

Come posso sapere quali altre funzioni Javascript non funzionano sul nodo?

Grazie!

+3

L'API 'performance' è una cosa browser web; non fa parte del codice JavaScript, proprio come il DOM non fa parte di JavaScript. – Pointy

+0

Nel nodo, probabilmente si desidera 'process.hrtime()'. Comunque, alcune API sono specifiche dell'host. Il modo migliore per saperlo è il test. –

risposta

8

In primo luogo, dobbiamo essere molto chiari su ciò che JavaScript fa e non include.

La definizione per ciò che JavaScript include è EMCA-262 guide. Questa è l'unica cosa che JavaScript deve avere.

Tutto il resto - dal DOM all'oggetto performance sono aggiunte fornite dall'ambiente host.

Alcuni - molti - browser hanno scelto di aggiungere performance.now() ma NON fa parte di JavaScript - solo qualcosa che JavaScript può chiamare.

nodeJS al momento non lo supporta, almeno non immediatamente, ma sembra che qualcuno abbia creato un modulo che ti dia quell'abilità.

io non ho provato, appena fatto un rapido Google per 'performance.now` nodi e questo è stato il primo colpo: https://www.npmjs.com/package/performance-now

+0

Grazie a tutti.- –

+1

Il nodo v8.5.0 ha aggiunto [API di timing delle prestazioni] (https://nodejs.org/api/perf_hooks.html#perf_hooks_performance_timing_api), che include ['performance # now()'] (https : //nodejs.org/api/perf_hooks.html#perf_hooks_performance_now). – Gajus