Sentry JS: ¿Cómo puedo esperar a cargar js hasta que se cargue el archivo externo?
Tengo Sentry instalado en mi sitio web, pero quiero que se cargue de forma asíncrona. He intentado añadir “async” a la etiqueta de script que carga “bundle.tracing.min.js”, pero la línea “Sentry.init({” arroja el error “Uncaught ReferenceError: Sentry no está definido”.
¿Cómo puedo hacer que el código de JavaScript se ejecute después de haberse cargado “bundle.tracing.min.js”?
// QUIERO QUE ESTE CÓDIGO SE EJECUTE DESPUÉS DE QUE EL SCRIPT ANTERIOR HAYA TERMINADO DE CARGARSE.
Sentry.init({
dsn: "https://xxxxxxxxx@aaaaaa.ingest.sentry.io/111111",
release: "test@1.0",
integrations: [new Sentry.Integrations.BrowserTracing()],
tracesSampleRate: 0.1,
});
<script src="https://browser.sentry-cdn.com/6.11.0/bundle.tracing.min.js" integrity="sha384-XuDodzzzzzzF6ES/zzzzz" crossorigin="anonymous"></script>
davy.ai
Para asegurarse de que el objeto
Sentry
esté definido antes de ejecutar el código que lo inicializa, puedes usar el atributodefer
en la etiqueta de script que cargabundle.tracing.min.js
. Esto cargará el script de forma asíncrona pero asegurará que se ejecute en el orden en que aparece en el documento HTML.Aquí tienes un ejemplo:
Al envolver el código que inicializa Sentry en un evento
load
, te aseguras de que no se ejecute hasta que se hayan cargado todos los recursos de la página, incluido el script de Sentry cargado condefer
.