Knowledge Programación Entornos de Programación
Este material didáctico forma parte del Curso online de Introducción a la Programación con JavaScript (UF1305)

Qué puede y qué no puede hacerse con JavaScript

JavaScript es principalmente un lenguaje complementario, lo que significa que es poco común que una aplicación sea escrita por completo exclusivamente en JavaScript sin la ayuda de otros lenguajes como HTML y sin presentación en un navegador Web. Esto está cambiando con la llegada de productos como Node.js, que posibilitan crear aplicaciones en el lado del servidor basadas en JavaScript. Algunos productos de Adobe soportan JavaScript, y Windows 8 comienza a cambiar esto, pero el uso principal de JavaScript está en los navegadores.

JavaScript y AJAX

JavaScript es también la J del acrónimo AJAX (Asynchronous JavaScript and XML - JavaScript asíncrono y XML), el niño mimado del fenómeno Web 2.0. Sin embargo, más allá de eso, JavaScript es un lenguaje cotidiano que proporciona interactividad esperada y tal vez exigida por los usuarios de las páginas Web de hoy en día.

JavaScript puede realizar muchas tareas en la parte cliente de la aplicación. Por ejemplo, se puede añadir la interactividad necesaria para una página Web mediante la creación de menús desplegables, transformar texto en una página, añadir elementos dinámicos a una página, o ayudar con la entrada de datos en un formulario.

Funcionalidad de JavaScript

Antes de aprender sobre lo que puede hacerse con JavaScript, hay que entender lo que JavaScript no puede hacer, pero tengamos en cuenta que la discusión al respecto es amplia.

Muchas de las operaciones que JavaScript no puede realizar son el resultado del uso de determinadas instrucciones limitadas a un entorno de navegador Web. Esta sección examina algunas de las tareas que JavaScript no puede llevar a cabo y algunas que JavaScript no debe realizar.

JavaScript no puede ser forzado en un cliente

JavaScript descansa en otro interfaz o programa anfitrión para su funcionalidad. Este programa huésped suele ser el navegador Web del cliente, también conocido como agente de usuario. Debido a que JavaScript es un lenguaje del lado del cliente, se puede hacer sólo lo que el cliente permite que se haga.

Soporte de JavaScript

Algunas personas siguen utilizando navegadores antiguos que no soportan JavaScript en absoluto. Otros no podrán beneficiarse de muchas de las características destacables de JavaScript debido a programas de accesibilidad, lectores de texto, y otros complementos de software que ayudan a la experiencia de navegación. Y algunas personas optan simplemente por desactivar JavaScript porque pueden, por motivos de seguridad (ya sean percibidos o reales), o debido a la mala reputación de JavaScript obtenida como resultado de ciertas molestias, como con los anuncios de tipo pop-up o emergentes.

Independientemente de la razón, es necesario realizar un trabajo extra para asegurarse de que el sitio Web que estamos diseñando está disponible para aquellas personas que no tienen JavaScript. Podemos entender sus protestas en este punto: ?Pero esta característica es realmente [inserte su propio adjetivo superlativo aquí: fresco, dulce, esencial, agradable, fantástico].? Independientemente de lo bien que hagamos nuestro papel, el resultado sería que se beneficiarán de una mejor interoperabilidad y más visitantes.

Falta de control sobre la aplicación

Podría ser útil pensar en este problema de otra manera. Cuando se construye una aplicación Web que se sirve desde en servidor Web Microsoft Internet Information Services (IIS) 6.0, se puede asumir que la aplicación normalmente funciona cuando se sirve a partir de ese servidor IIS 6.0 en cualquier lugar. Del mismo modo, cuando se construye una aplicación en Apache 2, podemos estar bastante seguros de que va a funcionar en otras instalaciones con Apache 2. Sin embargo, el mismo supuesto no se puede hacer para JavaScript. Cuando se escribe una aplicación que funciona bien en nuestro escritorio, no podemos garantizar que vaya a funcionar en el de cualquier otro. No podemos controlar cómo funcionará nuestra aplicación después de que se envía al cliente.
JavaScript no puede garantizar seguridad de datos

Debido a que JavaScript se ejecuta en su totalidad en el cliente, el desarrollador debe aprender a dejar el control. Después de que el programa está en el ordenador del cliente, éste puede hacer muchas cosas indeseables a los datos antes de enviarlos de nuevo al servidor. Al igual que con cualquier otro tipo de programación Web, nunca deberíamos confiar en los datos que vuelven desde el cliente. Incluso si hemos utilizado funciones JavaScript para validar el contenido de los formularios, todavía debemos validar estas entradas de nuevo cuando lleguen los datos al servidor. Un cliente con JavaScript desactivado podría devolver datos basura a través de un formulario Web. Si creemos, inocentemente, que nuestra función JavaScript del lado del cliente ya ha comprobado los datos para asegurarse de que son válidos, nos encontraremos con que se enviarán datos no válidos al servidor, provocando consecuencias imprevistas y posiblemente peligrosas.

Desactivación de JavaScript

Recordemos que JavaScript puede desactivarse en el navegador de nuestros visitantes. No deberíamos utilizar trucos poco recomendables para tener cierto éxito, como el uso de JavaScript para desactivar el clic derecho o para impedir que los visitantes puedan ver el código fuente de la página. No debieran usarse como medidas de seguridad.
JavaScript no puede atravesar dominios

El desarrollador JavaScript debe también conocer la limitación que dicta que scripts que se ejecutan desde dentro de un dominio no tienen acceso a recursos de otro dominio de Internet, ni pueden afectar a scripts ni a datos de otro dominio. Por ejemplo, JavaScript puede ser utilizado para abrir una nueva ventana del navegador, pero el contenido de esa ventana es algo restringido a la secuencia de comandos que llama. Cuando una página de mi sitio Web (midominio.com) contiene JavaScript, esa página no puede acceder a ningún JavaScript ejecutado desde un dominio diferente, como google.com. Esta es la esencia de la política del mismo origen (en inglés Same-Origin Policy): JavaScript tiene que ser ejecutado u originado desde la misma ubicación.

Objetos de AJAX

Esto mismo es a menudo una restricción que lidiar cuando se usan frames y el objeto XMLHttpRequest de AJAX, donde pueden enviarse varias peticiones JavaScript a diferentes servidores Web. Con la introducción de Windows Internet Explorer 8, Microsoft introdujo la compatibilidad con el objeto XDomainRequest, que permite acceso limitado a datos de otros dominios.
JavaScript no hace servidores

Desarrollando código del lado del servidor, por ejemplo, Visual Basic.NET o PHP (un acrónimo recursivo que significa PHP: Hypertext Preprocessor), podemos estar bastante seguros de que el servidor implementará ciertas funciones, como comunicarse con una base de datos o conceder acceso a módulos necesarios para la aplicación Web. JavaScript no tiene acceso a las variables del lado del servidor. Por ejemplo, JavaScript no puede acceder a bases de datos que se encuentran en el servidor. El código JavaScript se limita a lo que se puede hacer dentro de la plataforma sobre la que se está ejecutando el script, que suele ser el navegador.

Otro cambio en el modo de pensar, si estamos familiarizados con la programación del lado del servidor, es que con JavaScript tenemos que probar el código en muchos clientes diferentes para saber lo que un cliente particular es capaz de hacer. Cuando programamos en el lado del servidor, si el servidor no implementa cierta función, lo sabemos de inmediato porque el script del lado del servidor falla cuando lo probamos. El software del servidor no cambia por capricho habitualmente y, por tanto, es fácil saber qué puede y qué no puede hacerse con el código. Pero no podemos anticiparnos con el código JavaScript que pretendemos ejecutar en los clientes, debido a que están completamente fuera de nuestro control.

Implementación en el servidor

Existen también implementaciones de JavaScript del lado del servidor, pero su consideración está más allá de los contenidos que aquí se ofrecen.
Ver Actividad Actividad de autoevaluación: Posibilidades de JavaScript
 

Este contenido didáctico abierto está extraído del Curso online de Introducción a la Programación con JavaScript (UF1305).

Amplía tus conocimientos con el Curso Online de Introducción a la Programación con JavaScript (UF1305)

Puedes continuar ahora la formación matriculándote en el curso, o si lo prefieres, consultar nuestro catálogo con cerca de 400 actividades formativas acreditadas.

Este sitio web utiliza cookies de terceros con la finalidad de analizar el uso que hace de nuestra web y personalizar el contenido de los anuncios. Si continúa navegando entendemos que acepta su uso. Más información