Script tag en head y body
JavaScript es ejecutado cuando es encontrado en el documento, por lo tanto los scripts dentro de la etiqueta head son los primeros en ser ejecutados. Los scripts dentro del body son ejecutados tan pronto se interpreta la línea.
<head>
<script>
// Nunca si instala el evento puesto que aún no existe el elemento button1,
// es por ello que se utiliza document.ready
$("#button1").click(function() {
alert("ya");
});
</script>
</head>
<body>
...
<button id='button1'>click me</button>
<script>
// Aquí si se instala el evento y se muestra la alerta al presionar button1
$("#button1").click(function() {
alert("ya");
});
</script>
</body>
El problema de poner los scripts en el <head>
es que la página se quedará bloqueada (sin mostrar aún ningún contenido porque todavía no interpreta la etiqueta <body>
) hasta que descarga, parsea y ejecuta el script.
La recomendación es dejar los scripts en la etiqueta <head>
a menos que se tengan problemas de carga.