HTML5
puede ser imaginado como un edificio soportado por tres grandes columnas: HTML,
CSS y Javascript. Ya hemos estudiado los elementos incorporados en HTML y las
nuevas propiedades que hacen CSS la herramienta ideal para diseñadores.
Ahora es momento de develar lo que puede ser
considerado como uno de los pilares más fuertes de esta especificación:
Javascript.
Javascript es un lenguaje interpretado usado para múltiples propósitos
pero solo considerado como un complemento hasta ahora. Una de las innovaciones
que ayudó a cambiar el modo en que vemos Javascript fue el desarrollo de nuevos
motores de interpretación, creados para acelerar el procesamiento de código.
La
clave de los motores más exitosos fue transformar el código Javascript en código
máquina para lograr velocidades de ejecución similares a aquellas encontradas en
aplicaciones de escritorio. Esta mejorada capacidad permitió superar viejas
limitaciones de rendimiento y confirmar el lenguaje Javascript como la mejor
opción para la web. Para aprovechar esta
prometedora plataforma de trabajo ofrecida por los nuevos navegadores, Javascript
fue expandido en relación con portabilidad e integración.
A la
vez, interfaces de programación de aplicaciones (APIs) fueron incorporadas por defecto
en cada navegador para asistir al lenguaje en funciones elementales. Estas
nuevas APIs (como Web Storage, Canvas, y otras) son interfaces para librerías
incluidas en navegadores. La idea es hacer disponible poderosas funciones a través
de técnicas de programación sencillas y estándares, expandiendo el alcance del
lenguaje y facilitando la creación de programas útiles para la web.
En
este capítulo vamos a estudiar cómo incorporar Javascript dentro de nuestros
documentos HTML y veremos las incorporaciones recientes a este lenguaje con la
intención de prepararnos para el resto del libro.
Incorporando
JavaScript
Siguiendo
los mismos lineamientos que en CSS, existen tres técnicas para incorporar código
Javascript dentro de HTML. Sin embargo, al igual que en CSS, solo la inclusión
de archivos externos es la recomendada a usar en HTML5.
EN LINEA
Esta
es una técnica simple para insertar Javascript en nuestro documento que se
aprovecha de atributos disponibles en elementos HTML. Estos atributos son
manejadores de eventos que ejecutan código de acuerdo a la acción del usuario. Los
manejadores de eventos más usados son, en general, los relacionados con el ratón,
como por ejemplo onclick, onMouseOver, u onMouseOut. Sin embargo, encontraremos
sitios web que implementan eventos de teclado y de la ventana, ejecutando
acciones luego de que una tecla es presionada o alguna condición en la ventana
del navegador cambia (por ejemplo, onload
u onfocus).
|
@madesweb |
El
resultado que obtenemos seria el siguiente:
|
@madesweb
Usando
el manejador de eventos onclick, un código
es ejecutado cada vez que el usuario hace clic con el ratón sobre el texto que
dice “Hacer Clic”. Lo que el manejador onclick
está diciendo es algo como: “cuando
alguien haga clic sobre este elemento ejecute este código” y el código en
este caso es una función predefinida en Javascript que muestra una pequeña
ventana con el mensaje “hizo clic!”.
Intente
cambiar el manejador onclick por onMouseOver, por ejemplo, y verá cómo el
código es ejecutado solo pasando el puntero del ratón sobre el elemento.
EMBEDIDO
Para
trabajar con códigos extensos y funciones personalizadas debemos agrupar los códigos
en un mismo lugar entre etiquetas <script>. El elemento <script> actúa exactamente igual al elemento <style> usado para incorporar estilos CSS.
Nos ayuda a
organizar el código en un solo lugar, afectando a los elementos HTML por medio
de referencias. Del mismo modo que con el elemento <style>, en HTML5 no debemos usar ningún atributo para especificar
lenguaje. Ya no es necesario incluir el atributo type en la etiqueta <script>. HTML5 asigna JavaScript por defecto.
En resultado
sería exactamente igual al de ejemplo anterior una cuadro de dialogo emergente
con una alerta que dice “Hizo clic!”.
El elemento <script>
y su contenido pueden ser posicionados en cualquier lugar
del documento, dentro de otros
elementos o entre ellos.
Para mayor claridad, recomendamos siempre colocar sus códigos
Javascript en la cabecera del documento y luego referenciar los elementos a ser
afectados usando los métodos Javascript apropiados para ese propósito. Actualmente
existen tres métodos disponibles para referenciar elementos HTML desde
Javascript:
- getElementsByTagName: referencia un elemento por su nombre o palabra clave.
- getElementById: referencia un elemento por el valor de su atributo id.
- getElementsByClassName: es una nueva incorporación que nos permite referenciar un elemento por el valor de su atributo class.
Incluso
si seguimos la práctica recomendada (posicionar el código dentro de la cabecera
del documento), una situación debe ser considerada: el código del documento es
leído de forma secuencial por el navegador y no podemos referenciar un elemento
que aún no ha sido creado.
Elemento <p> que estamos referenciando. Si hubiésemos intentado afectar el
elemento <p> directamente con una referencia, hubiéramos recibido un mensaje de
error anunciando que el elemento no existe.
Para evitar este problema,
el código fue convertido a una función llamada mostraralerta(), y la referencia al elemento <p> junto con el manejador del evento
fueron colocados en una segunda función llamada hacerclic().
Las funciones son llamadas desde la última línea del código usando
otro manejador de eventos (en este caso asociado con la ventana) llamado onload. Este manejador
ejecutará la función hacerclic() cuando el documento sea completamente cargado y todos los
elementos creados.
Es tiempo de analizar cómo el documento del ejemplo anterior es ejecutado. Primero las funciones Javascript
son cargadas (declaradas) pero no ejecutadas. Luego los elementos HTML,
incluidos los elementos <p>, son creados. Y finalmente, cuando el documento completo es
cargado en la ventana del navegador, el evento load es disparado y la
función hacerclic() es llamada. En esta función, el método getElementsByTagName referencia todos
los elementos <p>.
Este método retorna un arreglo (array) conteniendo una lista de
los elementos de la clase especificada encontrados en el documento. Sin
embargo, usando el índice [0] al final del método indicamos que solo queremos que el primer
elemento de la lista sea retornado.
Una vez que este elemento es identificado, el código registra el
manejador de eventos onclick para el mismo. La función mostraralerta() será ejecutada cuando
el evento click es disparado sobre este elemento mostrando el mensaje “hizo clic!”.
Puede parecer mucho código y trabajo para reproducir el mismo
efecto logrado por una simple línea en el ejemplo anterior. Sin embargo,
considerando el potencial de HTML5 y la complejidad alcanzada por Javascript,
la concentración del código en un único lugar y la apropiada organización
representa una gran ventaja para nuestras futuras implementaciones y para hacer
nuestros sitios web y aplicaciones fáciles de desarrollar y mantener.
|
ARCHIVOS EXTERNOS
Los códigos Javascript crecen exponencialmente cuando agregamos
nuevas funciones y aplicamos algunas de las APIs mencionadas previamente. Códigos
embebidos incrementan el tamaño de nuestros documentos y los hacen repetitivos (cada
documento debe volver a incluir los mismos códigos). Para reducir los tiempos de
descarga, incrementar nuestra productividad y poder distribuir y reusar
nuestros códigos en cada documento sin comprometer eficiencia, recomendamos grabar
todos los códigos Javascript en uno o más archivos externos y llamarlos usando
el atributo src:
El código seria el siguiente:
|
@madesweb |
El código
js sería el mismo del ejemplo 2, pero esta vez en un archivo .js
|
@madesweb |
Y el resultado tendría que
ser igual a los anteriores.
Así daríamos por concluido
el articulo de introducción a JavaScript, con estos simples ejemplos y
conociendo las maneras de incorporar código js a nuestra plantilla html.
En un próximo artículo
veremos nuevos selectores y nuevas formas de trabajar con JavaScript.
Si te ha parecido
interesante recuerda compartirlo con tus
amigos, y dale like a nuestra página en face.
No hay comentarios:
Publicar un comentario