Qué incorrecto es colocar la etiqueta del script después de la etiqueta de cierre del cuerpo ( </body>
). ?
<html>
....
<body>
....
</body>
<script type="text/javascript" src="theJs.js"></script>
</html>
javascript
html
DanC
fuente
fuente
Respuestas:
No se validará fuera de las etiquetas
<body>
o<head>
. Tampoco hará mucha diferencia, a menos que esté haciendo manipulaciones DOM que podrían romper IE antes de que el elemento del cuerpo esté completamente cargado, para colocarlo justo antes del cierre</body>
.fuente
<script src="..." defer>
, lo que funciona en todos los principales navegadores (aunque con un error potencialmente inminente en IE9 y versiones inferiores).Si. Solo se permiten comentarios y la etiqueta final para el elemento html después de la etiqueta final para el cuerpo.
Los navegadores pueden realizar la recuperación de errores, pero nunca debe depender de eso.
fuente
Como Andy dijo que el documento no será válido, sin embargo, el guión seguirá siendo interpretado. Vea el fragmento de WebKit, por ejemplo:
fuente
IE ya no permite esto (desde la Versión 10, creo) e ignorará dichos scripts. FF y Chrome todavía los toleran, pero hay posibilidades de que algún día lo eliminen como no estándar.
fuente
Insertar procedimentalmente "script de elemento" después de que "cuerpo de elemento" sea "error de análisis" según el proceso recomendado por W3C . En "Construcción de árbol", cree un error y ejecute "tokenizar de nuevo" para procesar ese contenido. Entonces es como un paso adicional. Solo entonces se puede ejecutar "Ejecución de secuencia de comandos": consulte el proceso del esquema .
Técnicamente por navegador es un proceso interno, cómo lo marcan y lo optimizan.
Espero haber ayudado a alguien.
fuente
Si. Pero si agrega el código fuera de él, lo más probable es que no sea el fin del mundo, ya que la mayoría de los navegadores lo arreglarán, pero sigue siendo una mala práctica.
fuente
Google realmente recomienda esto con respecto a la 'Optimización CSS'. Recomiendan en línea estilos críticos de plegado superior y diferir el resto (archivo css).
Ejemplo:
Ver: https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery
fuente
body
elemento. Ese artículo de Google no aconseja a nadie que haga tal cosa.Los navegadores modernos tomarán etiquetas de script en el cuerpo de esta manera:
Básicamente, significa que el script se cargará una vez que la página haya terminado, lo que puede ser útil en ciertos casos (es decir, la manipulación DOM). Sin embargo, le recomiendo que tome el mismo script y lo coloque en la etiqueta de la cabeza con "aplazar", ya que dará el mismo efecto.
fuente
script
etiquetas tuvieran unevent
atributo que pudiera definirse para determinar cuándo analizar el script. Por lo tanto, debeevent="load" event="DOMContentLoaded"
ejecutar el script después de crear el DOM oevent="beforeunload"
en elbeforeunload
evento de la ventana . Ejemplo,<script src="scripts/main.js" event="DOMContentLoaded"></script>
.