Estoy tratando de obtener el tiempo que lleva cargar una página y no estoy seguro de la forma correcta de ejecutar este script.
Pensé que podría hacer esto:
window.addEventListener("load", function(){ console.log(performance.getEntriesByType("navigation")[0].duration); });Sin embargo, siempre devuelve 0;
Si lo ejecuto en la consola después, funciona bien. ¿Hay otro evento que pueda usar que se ejecute después del evento de carga de la ventana? ¿Cuál es el uso correcto de esta función?
EDITAR: parece que usar setTimeout lo agrega como lo primero que se ejecuta después de que la página se haya cargado por completo. El código de trabajo es:
window.addEventListener("load", function(){ setTimeout(function(){ console.log(performance.getEntriesByType("navigation")[0].duration); }, 0); });Puede obtener el tiempo de carga utilizando la API de rendimiento proporcionada por su navegador
let loadTime = window.performace.timing.loadEventEnd - window.performance.timing.navigationStart;Visite https://developer.mozilla.org/en-US/docs/Web/API/Navigation_timing_API para obtener más
También puede sondear el valor que se establece:
const perf = () => { const duration = performance.getEntriesByType("navigation")[0].duration; if (!duration) setTimeout(perf, 0); else console.log({ duration }); } window.addEventListener('DOMContentLoaded', perf);