Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

377
Visualizações
Implicaciones de múltiples etiquetas <script> en HTML

He leído que no se recomienda instanciar jQuery varias veces en su HTML. Esto tiene perfecto sentido para mí, pero: ¿Javascript no es de un solo subproceso de todos modos? Y dejando atrás jQuery, ¿cómo ejecuta el navegador estas múltiples etiquetas de script? ¿En paralelo o uno tras otro?

gracias, felipe

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Respuesta sencilla:

En un escenario simple (las etiquetas son parte del texto HTML original), el navegador definitivamente las ejecuta una tras otra.

Discusión detallada con diferentes advertencias

JavaScript no es necesariamente de un solo subproceso (depende de la implementación de su motor de JavaScript, por ejemplo, consulte Web Workers ).

PERO, las etiquetas <script> individuales se ejecutan secuencialmente.

Para referencia, consulte JavaScript: The Definitive Guide . Citando el Capítulo "12.3. Ejecución de Programas JavaScript":

Las declaraciones de JavaScript que aparecen entre las etiquetas y se ejecutan en orden de aparición; cuando aparece más de un script en un archivo, los scripts se ejecutan en el orden en que aparecen. Si un script llama a document.write(), cualquier texto pasado a ese método se inserta en el documento inmediatamente después de la etiqueta de cierre y el analizador HTML lo analiza cuando el script termina de ejecutarse. Las mismas reglas se aplican a los scripts incluidos desde archivos separados con el atributo src.


Tenga en cuenta que lo anterior solo se aplica a la ejecución "directa" del código en las etiquetas. Sin embargo, el pedido puede verse afectado por:

  • setTimeout() llamadas (duh)

  • atributo diferido

  • Archivo adjunto dinámico de las etiquetas <script> : consulte la última sección de esta respuesta.


Como advertencia , tenga en cuenta que el código JavaScript cargado externamente a través de <script src="xxxx" /> aún se ejecutará secuencialmente, PERO, es muy posible que el navegador DESCARGUE el código en paralelo; depende de la implementación del navegador (pero aún programar la ejecución de fragmentos de código descargados en el orden correcto).

Esta advertencia es importante en caso de que desee tener algún truco extraño, mientras que la URL de la fuente de JavaScript es en realidad un script CGI que hace algo y usted intenta depender del orden correcto de las descargas para la lógica del script.

Una vez más, no influiría en el orden de ejecución del motor JS de su navegador de esas piezas de script.


Sin embargo, una advertencia mucho más importante es que si realmente adjunta las etiquetas <script> con fuentes externas de forma dinámica (por ejemplo, a través de la llamada appendChild() ), de acuerdo con esta publicación de SO , así como con el blog de MSDN en el que se basó la publicación , no -¡Los navegadores IE NO garantizan el orden de ejecución! ¡Dependerá de qué código de etiqueta terminó de descargarse primero!

over 4 years ago · Santiago Trujillo Relatório

0

Cuantas menos llamadas haga para instanciar un objeto jQuery, menos gastos generales tendrá, pero incluso si está diseñando para navegadores antiguos que se ejecutan en hardware de segunda generación, tenga cuidado con las microoptimizaciones. Perfile su aplicación y arregle las partes que realmente son los cuellos de botella.

En cuanto a la forma en que los navegadores manejan varias etiquetas de script, varía de un navegador a otro, de una versión a otra y, a veces, incluso de un sistema operativo a otro. Todos los navegadores ejecutan cada etiqueta de secuencia de comandos en el orden del documento:

 <script src="scripts/some_script.js"></script> <!-- Executed 1st --> <script src="scripts/some_other_script.js"></script> <!-- Executed 2nd --> <script> // Some JavaScript </script> <!-- Executed 3rd --> <script> // Some More JavaScript </script> <!-- Executed 4th -->

Sin embargo, otros comportamientos no están definidos y hay variación. Por ejemplo, Opera (al menos en Windows XP para la versión 10.6) ejecutó cada etiqueta de secuencia de comandos en su propio contexto, por lo que las variables locales en el tercer bloque de secuencias de comandos estarían fuera del alcance si se hace referencia en el cuarto bloque de secuencias de comandos.

 <script> var i = 42; </script> <script> alert(i); // Alerts "undefined" in Opera, but 42 in Firefox. </script>
over 4 years ago · Santiago Trujillo Relatório

0

El navegador ejecuta JavaScript secuencialmente (lo mismo ocurre con jQuery, ya que jQuery es solo JavaScript).

En cuanto a tener varias etiquetas de secuencias de comandos en HTML, no hay ninguna razón por la que esto sea un problema. Como preguntó Nabab, me interesaría ver su fuente para eso.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda