(Anterior) HTML / XHTML a Detalle (Parte 2) | JavaScript a Detalle (Siguiente) |
Porque surgió JavaScript ?
Si bien es cierto que HTML / XHTML no es capaz ejecutar cierto tipo de lógica, esta es sólo una de las razones por las que surgieron "Scripting Languages" como JavaScript.
Cuando recién apareció Internet, el cliente ("Browser" o Navegador) era capaz de funcionar únicamente como un medio de despliegue, conforme empezó a madurar este medio y las demandas de despliegue incrementaron creció la necesidad de ejecutar programas, de inicio dicha lógica empezó a ser ejecutada en el servidor de páginas, esto es, el mismo servidor de páginas ejecutaba operaciones matemáticas, validaba la información del usuario o generaba menús dinámicos.
Sin embargo, esta metodología tuvo resultados deficientes en cuanto a escalabilidad se refiere, por lo tanto se iniciaron trabajos para implementar el paradigma clásico Cliente-Servidor de trasladar/dividir el trabajo entre ambos, que en este caso representan el "Browser" y servidor de páginas respectivamente, a raíz de esto surgió JavaScript, el cual hoy en día se encuentra en su versión 1.5
Aunque ciertas tareas se siguen ejecutando en el servidor de páginas, se ha intentado pasar una parte de estas al cliente (Navegador) por dos principales razones:
Tiempo de transferencia : El mantener la ejecución de lógica en el servidor de páginas implica que deben llevarse acabo varias requisiciones, esto es, si se necesita llevar acabo un cálculo o se le están solicitando datos a una persona, esta información debe ser transferida hasta el servidor de páginas para ser ejecutada o validada , en cambio, si se utiliza un "Scripting Language" es posible realizar esta lógica instantáneamente en el cliente, sin incurrir en una transferencia de información adicional.
Carga al servidor de páginas : Además de incurrir en este tiempo adicional de ejecución, un volumen substancial de tareas rutinarias puede resultar en una sobrecarga innecesaria al servidor de páginas, esto con lógica que bien puede ser transferida para ser ejecutada en un Navegador.
Como se declara ?
JavaScript se declara de una manera muy similar a HTML / XHTML ya que también utiliza Tags en sus declaraciones:
<html> <head> <title> Documento Básico en HTML / XHTML </title> <script type="text/javascript"> <!-- var mail_osmosis = '<a href=mailto:webmaster@osmosislatina.com>'; //--> </script> </head> <body> <h2> Este es el Titulo </h2> <script type="text/javascript"> <!-- document.write("Envíe su correo a" + mail_osmosis +". Gracias); //--> </script> </body> </html> |
El Tag utilizado para que un Navegador reconozca y ejecute JavaScript es <script>
, en el fragmento anterior, la primer declaración define una variable que estará disponible a lo largo todo el documento, mientras la segunda declaración hace uso del método document.write
empleado para imprimir a pantalla.
La utilización de comentarios ( <!-- //--> ) antes y después de iniciar los Tags <script>
garantizan que el código JavaScript no vaya causar errores en los navegadores que no son capaces de ejecutarlo.
Funciones y Librerías en JavaScript
Como se puede observar del fragmento anterior, las declaraciones JavaScript se pueden encontrar a lo largo de toda una página, sin embargo, este tipo de distribución no es recomendable por razones de manutención, para facilitar futuros cambios al código escrito en JavaScript, es recomendable que éste sea centralizado en librerías e importado al documento de la siguiente manera:
<html> <head> <title> Documento Básico en HTML / XHTML </title> <script type="text/javascript" src="utilerias.js"> </script> ..... |
El fragmento anterior importa la librería JavaScript llamada utilerias.js al documento, nótese que esta declaración también utiliza los elementos <script>
con la pequeña variación del atributo src
, al utilizar este atributo se tienen a disposición todos los elementos JavaScript definidos en el archivo en cuestión, tal y como si hubieran sido escritos en linea. A continuación se describe una librería de este tipo :
// Variable para el Administrador del sitio. var mail_encargado = "webmaster@osmosislatina.com" /** Script para eliminar el link que aparece en la parte inferior del Browser, se utiliza colocando <a href="...." onmouseover="esconder(); return true;"> */ function esconder() { window.status = ''; } /** Para revisión del Navegador y redireccionar el usuario a una sección especial REVISAR que se integre entre <script> </script> */ var agent = window.navigator.userAgent; var explorer = agent.indexOf("MSIE"); if (explorer > 0) { window.location.href = "http://www.osmosislatina.com/ie.htm"; } else { window.location.href = "http://www.osmosislatina.com/net.htm"; } |
Entre la sintaxis particular de este archivo se puede notar lo siguiente:
Los elementos
//
y/** */
son utilizados para la colocación de comentarios.Las variables son definidas con elementos
var
.El uso de condicionales if/else es similar a otros lenguajes de programación.
En la siguiente sección serán descritos los diversos métodos internos empleados en esta librería y disponibles en todo Navegador para emplearse en conjunción de HTML / XHTML .
Carencias de JavaScript
A pesar de los beneficios de JavaScript, este también posee varias carencias:
Es necesario enviar toda la lógica al Navegador, esto en ocasiones puede ser un volumen substancial (100Kb o 200Kb) y presentar una demora adicional para aquellos usuarios con conexiones de Internet lentas (Modem-28 Kbps).
Debido a que la lógica es enviada al "Browser", es posible que un usuario con suficientes conocimientos altere dicha lógica, esto puede ser un problema crítico especialmente al validar información.
El lenguaje es muy intolerable con errores, basta un ' (apóstrofe) o ) (paréntesis) adicional en una librería o declaración, para que 1000 o 2000 lineas cesen de funcionar.