Estoy tratando de usar la API PerformanceNavigationTiming
para generar una métrica de carga de página.
El documento API de MDN vinculado anteriormente dice que PerformanceEntry.duration
debería darme lo que necesito porque:
[r]egresa una marca de tiempo que es la diferencia entre las propiedades PerformanceNavigationTiming.loadEventEnd y PerformanceEntry.startTime.
Sin embargo, cuando compruebo esta propiedad, obtengo simplemente 0
. Estoy accediendo a esta API desde un enlace de React que ejecuta una función useEffect
que espera el evento de carga de la window
y luego verifica la API de la siguiente manera:
export const useReportPageLoadTime = () => { useEffect(() => { const reportTime = () => { let navPerformance: PerformanceEntry navPerformance = window.performance.getEntriesByType('navigation')[0] console.log({ duration: navPerformance.duration, blob: navPerformance.toJSON() }) } if (document.readyState === 'complete') { reportTime() return null } else { window.addEventListener('load', reportTime) return () => window.removeEventListener('load', reportTime) } }, []) }
Como puede ver allí, también llamo a toJSON
en la entrada de rendimiento y, de hecho, muestra que los valores sobre los cuales la duration
( startTime
y loadEventEnd
) también son 0
:
¿Alguien sabe por qué obtengo este valor?