es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para asegurarse de que el objeto Sentry esté definido antes de ejecutar el código que lo inicializa, puedes usar el atributo defer en la etiqueta de script que carga bundle.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:

    <script src="https://browser.sentry-cdn.com/6.11.0/bundle.tracing.min.js" integrity="sha384-XuDodzzzzzzF6ES/zzzzz" crossorigin="anonymous" defer=""></script>
    
    <script>
      window.addEventListener('load', function() {
        Sentry.init({
          dsn: "https://xxxxxxxxx@aaaaaa.ingest.sentry.io/111111",
          release: "test@1.0",
          integrations: [new Sentry.Integrations.BrowserTracing()],
          tracesSampleRate: 0.1,
        });
      });
    </script>
    

    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 con defer.

Comments are closed.