Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

266
Vistas
¿Es seguro llamar a una función desde un módulo importado dentro del evento de preparación del documento?

Quiero llamar a una función del módulo importado cuando se representa DOM. Lo que me hace dudar de la seguridad de esto es el hecho de que los archivos del módulo se recuperan de forma asíncrona. Por lo tanto, mi preocupación es: ¿es posible que se obtenga el archivo del módulo requerido después de que el documento esté listo?

 import someModule from '../someModule.js' $( document ).ready(function() { someModule.hello(); });

¿Es seguro este código?

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Ese código es seguro.

Si estaba usando DOMContentLoaded y no $(document).ready , puede ser algo de qué preocuparse. Los módulos se cargan de forma asíncrona y todo lo que importa un módulo en sí mismo se carga antes de que se ejecute el cuerpo del módulo. Eso es:

 import someModule from '../someModule.js'

primero se resolverá a un valor de la exportación someModule , y solo entonces se ejecutará el resto del módulo:

 $( document ).ready(function() { someModule.hello(); });

Es posible que el resto del documento haya terminado de cargarse en ese momento, especialmente si hay más cadenas de importación más arriba en el árbol de dependencias y el código fuente HTML es corto.

Pero $(document).ready no solo ejecutará su devolución de llamada cuando el documento esté listo, sino que también ejecutará su devolución de llamada si el documento ya está listo, lo que se puede verificar con document.readyState .

Ejemplo:

 setTimeout(() => { // the document will have been fully loaded for ages now, // but the callback will still run: $(() => { console.log('running'); }); }, 5000);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Si estuviera usando DOMContentLoaded en su lugar, para estar seguro, necesitaría usar

 if (document.readyState === 'complete') { someModule.hello(); } else { window.addEventListener('DOMContentLoaded', () => someModule.hello()); }

También tenga en cuenta que en jQuery, la forma moderna preferida de programar una devolución de llamada cuando el documento está listo es simplemente pasar la devolución de llamada a $ :

 $(() => { someModule.hello(); });
about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda