Descubre millones de libros electrónicos, audiolibros y mucho más con una prueba gratuita

Desde $11.99 al mes después de la prueba. Puedes cancelar en cualquier momento.

Curso de Programación Web
Curso de Programación Web
Curso de Programación Web
Libro electrónico887 páginas8 horas

Curso de Programación Web

Calificación: 3.5 de 5 estrellas

3.5/5

()

Leer vista previa

Información de este libro electrónico

En este curso aprenderá todo lo necesario para poder realizar las principales tareas de programación en sus desarrollos web.

Este curso está orientado principalmente al uso de JavaScript, Ajax, jQuery y del Framework Backbone, por considerar que son los principales lenguajes de programación que intervienen en la actualidad en el desarrollo de las principales funciones de una página web, logrando efectos y ajustes que serían imposibles de realizar con otros lenguajes de programación tales como PHP y ASP.

IdiomaEspañol
Fecha de lanzamiento8 jun 2015
ISBN9781514267561
Curso de Programación Web
Autor

Alberto Ayoze Castillo

Este Curso ha sido elaborado por Alberto Ayoze Castillo, analista de programación Web desde el año 2004, jefe de desarrollo de proyectos Web desde el año 2008, consultor para grandes empresas sobre el desarrollo Web y el impacto en la lógica del negocio empresarial desde el año 2011, y formador de analistas de desarrollo Web e instructor de formación online desde el año 2014.

Relacionado con Curso de Programación Web

Libros electrónicos relacionados

Computadoras para usted

Ver más

Artículos relacionados

Comentarios para Curso de Programación Web

Calificación: 3.7 de 5 estrellas
3.5/5

10 clasificaciones0 comentarios

¿Qué te pareció?

Toca para calificar

Los comentarios deben tener al menos 10 palabras

    Vista previa del libro

    Curso de Programación Web - Alberto Ayoze Castillo

    Curso de Programación

    Web

    JavaScript, Ajax y jQuery

    ––––––––

    Alberto Ayoze Castillo

    Copyright © 2015 Alberto Ayoze Castillo

    ISBN-13: 978-1514267561

    ––––––––

    NOTA DEL AUTOR

    ––––––––

    Esta publicación está destinada a proporcionar el material útil e informativo. Esta publicación no tiene la intención de conseguir que usted sea un maestro de las bases de datos, sino que consiga obtener un amplio conocimiento general de las bases de datos para que cuando tenga que tratar con estas, usted ya pueda conocer los conceptos y el funcionamiento de las mismas. No me hago responsable de los daños que puedan ocasionar el mal uso del código fuente y de la información que se muestra en este libro, siendo el único objetivo de este, la información y el estudio de las bases de datos en el ámbito informático. Antes de realizar ninguna prueba en un entorno real o de producción, realice las pertinentes pruebas en un entorno Beta o de prueba.

    El autor y editor niegan específicamente toda responsabilidad por cualquier responsabilidad, pérdida, o riesgo, personal o de otra manera, en que se incurre como consecuencia, directa o indirectamente, del uso o aplicación de cualesquiera contenidos de este libro.

    Todas y todos los nombres de productos mencionados en este libro son marcas comerciales de sus respectivos propietarios. Ninguno de estos propietarios ha patrocinado el presente libro.

    Procure leer siempre toda la documentación proporcionada por los fabricantes de software usar sus propios códigos fuente. El autor y el editor no se hacen responsables de las reclamaciones realizadas por los fabricantes.

    Tabla de contenido

    Introducción

    Características de JavaScript

    ¿Hay que aprender Javascript?

    Consideraciones en la sintaxis de Javascript

    La Línea de comentarios

    Empezar a trabajar con JavaScript

    Ejecutar JavaScript

    Separar el código

    ¿Dónde colocar el Javascript ?

    Sintaxis Básica de Javascript

    Las Variables

    Tipos en Javascript

    Tratar Números

    Los Strings

    Trabajar con Booleanos

    null y undefined

    Conversión de tipos

    El Condicional - if / else

    Operador Condicional Ternario

    El Condicional - switch

    Bucle For

    Los Arrays

    Trabajar con Funciones

    Los Objetos

    Otro ejemplomás

    Orientación a Objetos

    Un Ejemplo

    Ajax

    Un primer programa

    Utilizar archivos XML

    Petición del tipo POST

    Petición del tipo GET

    Ajax en el comienzo

    Utilizar Ajax con PHP y jQuery

    Métodos más cortos con jQuery

    jQuery.get

    Observar y modificar los programas

    Planteamiento previo de los programas de Javascript

    Estructuras básicas

    Programas externos

    Problemas con los navegadores antiguos

    Funciones

    Mecanismos elementales

    Variables, Constantes y Literales

    Variables

    Constantes

    Literales

    Expresiones. Operadores

    Asignaciones

    Concepto de expresión

    Concatenación

    Operadores aritméticos

    Operadores de sustitución

    Textos de contenido numérico

    Objetos y propiedades

    Organización e identificación de los objetos

    Propiedades y valores

    Las propiedades del documento

    Propiedades de los objetos interiores del documento

    Las propiedades de los objetos en las instrucciones de asignación

    Estructuras de Control y los operadores condicionales

    La instrucción if()

    if() sin else

    Un if()... else... dentro de otro

    Operadores de comparación

    El operador condicional

    Uso de switch()

    Los bucles: while() y for()

    Los bucles

    La estructura while()

    La variante do...while()

    La estructura for()

    La variante for...in...

    Las instrucciones break y continue

    Combinación de condiciones

    El operador ||

    El operador &&

    Formularios Web

    Captación de datos con un formulario

    Elementos de los formularios identificados con nAME

    Elementos de los formularios identificados con id

    Las matrices de los formularios

    Lectura y escritura

    Campos de texto, en general

    Campos de validaciones compatibles

    Campos de selecciones incompatibles

    Menús desplegables

    Funciones. Introducción

    Definición de funciones

    Llamar a las funciones

    Ámbito de una función

    Cierres

    Usando el objecto arguments

    Funciones predefinidas

    Funciones predefinidas

    Cuadros de diálogo

    La función prompt()

    La función confirm()

    La función alert()

    Funciones: argumentos y extracción de valores

    Clases de variables

    Argumentos en las funciones de usuario

    Ejecución de las funciones con argumentos

    Extracción de valores de una función de usuario

    Ejecución sin funciones de usuario

    Más usos de las funciones

    Uso de una función dentro de una expresión

    Una función como argumento de otra

    Una función dentro de otra

    Uso recursivo de funciones

    Imágenes

    Gestión de las imágenes

    Uso de getElementById

    La matriz images[n]

    Las imágenes como apoyo de eventos

    Objetos y ejemplos

    El objeto Image()

    La etiqueta

    ¿Cuando se ejecutan los programas?

    Ejecución de Javascript mientras se carga un documento:

    Gestores de eventos

    Cambios al terminar la carga de un documento

    Hacer clic sobre un elemento

    onMouseOver

    onMouseOut

    Acumulaciones de gestores

    Un onclick dentro de

    Uso de un hipervínculo ficticio

    Gestores de eventos

    Introducción

    onFocus y onBlur

    onSubmit y onReset

    onChange

    Cambiar de documento

    Uso de las formas abreviadas de las direcciones

    Otras propiedades de location

    Referrer

    Modificación del texto de un documento

    Modificación del texto de un documento ya cargado

    Obtención de datos para los cambios de texto

    Modificación de las especificaciones de estilo

    Cambios de estilo en los elementos de texto

    Modificación de la visibilidad de las capas

    El estilo y la resolución de la pantalla

    Fechas y Horas

    Propiedades y métodos

    Extracción de los datos de las instancias de Date()

    Otras fechas y horas

    Modificación de los datos

    Horario Universal

    Matrices. Introducción

    El objeto Array

    Creación de una matriz

    Rellenar una matriz

    Referir a los elementos de la matriz

    Iterar sobre arrays

    Métodos de matriz

    Arrays multidimensionales

    Las matrices y las expresiones regulares

    Comprensiones de matriz

    El objeto Boolean

    Objetos de fechas

    El objeto función

    El objeto Math

    El objeto String

    Matrices. Desarrollo

    Propiedades y métodos del objeto Array ()

    Creación de matrices

    Uso de variables en las matrices

    Cambio de orden de una matriz

    Longitud de una matriz

    Manipulación de las cadenas de texto

    Propiedades y métodos del objeto String ()

    La función eval()

    La función toString()

    Más cálculos matemáticos

    Introducción

    Valores matemáticos destacados

    Manipulación de los valores de números

    Potencias y logaritmos

    Funciones trigonometricas

    Cambios de base

    Números aleatorios

    Expresiones Regulares

    Creación de una expresión regular

    Escribir un patrón de expresión regular

    Uso de paréntesis

    Trabajar con expresiones regulares

    Usando paréntesis Subcadena Partidos

    Avanzada que busca con Banderas

    Ejemplos

    Migración de variables

    Captación de datos

    Envio de datos con location.href

    Uso de cookies para guardar variables

    Almacenamiento de las cookies

    Lectura de las cookies

    Ventanas múltiples

    Ventanas con marcos

    Abrir una nueva ventana: open()

    Abrir una ventana y poner una parte del documento

    La función close()

    Desplazamiento de una ventana

    Funciones dependientes del tiempo

    Ejecución de un proceso a intervalos regulares de tiempos

    Posponer un proceso durante un periodo cualquiera

    Uso recursivo de setTimeout.

    Historial, resolución y navegador

    El historial

    Resolución de pantalla

    El navegador

    Dibujo sobre canvas

    Especificaciones de color y de grosor

    Rectángulos

    Líneas rectas y arcos de circunferencia

    Puntos

    Gradientes

    Dibujos compuestos

    Borrar

    Dibujos dependientes de una función

    Javascript externo

    Acciones no condicionadas

    Asignación externa de funciones a gestores de eventos

    Asignaciones múltiples

    Selección de elementos por categoría

    Navegación mediante un desplegable

    Objetivo

    Contenido

    inicial.htm

    prog.js

    Navegación mediante botones variables

    Objetivo

    Contenido

    menu.htm

    prog.js

    Menú de columna desplegable

    Objetivo

    Contenido

    Serie de fotografías con miniaturas

    Objetivo

    Contenido

    miniaturas.htm

    fotos.htm

    prog.js

    Transición suave entre fotografías

    Objetivo

    Contenido

    prog.js

    estilo.css

    Presentación aleatoria de una imagen

    Objetivo

    Contenido

    fotos > *.*

    programa.js

    Presentación de la fecha y la hora iniciales

    Objetivo

    Contenido

    document.htm

    programa.js

    Presentación constantemente actualizada de la fecha y la hora

    Objetivo

    Contenido

    document.htm

    programa.js

    Introducción a Ajax

    AJAX Http Requests

    Soporte de los Navegadores

    AJAX y PHP: Aprendiendo la base

    Aprendiendo AJAX

    AJAX primitivo

    Desarrollando una aplicación con AJAX

    Modelado

    Módulo JavaScript

    Módulo PHP

    Módulo HTML

    Enviar formularios con AJAX usando PHP

    Ejemplos en Ajax

    Solicitar un usuario

    Enviando una petición del usuario

    AJAX – El Script Server-Side

    Sugerencia para hacer en AJAX

    Sugerencia para hacer con Ajax

    La página del usuario de AJAX con ASP y PHP

    Ejemplo de AJAX con bases de datos

    El AJAX JavaScript

    Ejemplo de la base de datos de PHP, AJAX y MySQL

    La base de datos

    El formulario del HTML

    El JavaScript

    La página PHP

    Ejemplo de AJAX XML

    El AJAX JavaScript

    La página del usuario de AJAX

    Ejemplo de PHP y de AJAX XML

    El formulario HTML

    El archivo XML

    El JavaScript

    La página PHP

    Ejemplo de AJAX ResponseXML

    El AJAX JavaScript

    La página del usuario de AJAX

    Ejemplo del responseXML de PHP y de AJAX

    El formulario del HTML

    El JavaScript

    La página de PHP

    AJAX AppML

    jQuery

    JQUERY VS .$( )

    Observando Eventos HTML

    Ajax y JSON con jQuery y PHP

    jQuery – Eventos en contenido cargado por Ajax

    jQuery UI

    Traduciendo el Calendario. El DatePicker del jQuery UI

    Ir hacia el top de la página usando jQuery

    Usar un Select con jQuery + Ajax + JSON

    SELECTORES

    PSEUDO-SELECTORES

    PROBANDO SI UNA SELECCIÓN CONTIENE ELEMENTOS

    MANIPULANDO ATRIBUTOS

    CREANDO ELEMENTOS DINÁMICAMENTE

    ¿Por qué trabajar con jQuery UI?

    Instalación

    Accordion

    Autocomplete

    Button

    Datepicker

    Dialog

    Progressbar

    Tabs

    Backbone. Un framework MVC para Javascript.

    Puntos Clave

    ¿Por qué Elegirlo?

    Una primera prueba - Hello World

    Backbone. Las Views

    Crear y definir una View

    El Método render()

    La Propiedad el

    Backbone. Más de Views y Templates

    Templates almacenados en el archivo HTML

    Backbone. Views y Eventos

    Un Ejemplo

    Backbone. Un ejemplo de view

    Backbone. Models

    El Método set()

    El Método get()

    Otro ejemplo más

    Backbone. Los Models y Los Eventos

    Backbone. Los Models y Las Views

    Un ejemplo más completo

    Backbone. Las Collections

    El Método get()

    Visualizar la colección

    Recorrer la collection

    Ordenar la colección

    Backbone. Las Collections y Los Eventos

    Otros eventos

    Los Eventos entre Models y Collections

    Backbone. Uniendo Collections y Views

    Un ejemplo más completo

    Backbone. Sincronizando un modelo

    Recuperar el registro read - fetch()

    Insertar un registro Create - save()

    Actualizar Update - save()

    Eliminar Delete - destroy()

    Backbone. Sincronizando Colecciones

    Backbone. Explorando el sync

    Sincronizando un modelo sin afectar los demás

    Backbone. Definir rutas

    Index y default

    Utilizar Parámetros

    Ejemplos de Backbone

    Conclusión

    Referencias bibliográficas

    ––––––––

    Introducción

    ––––––––

    En sus comienzos, el lenguaje JavaScript fue creado para funcionar en el lado del cliente y se ejecutaba exclusivamente en los navegadores web. La base de la programación en el lado del cliente consiste en escribir un script y hacer que este funcione en el navegador sin tener que viajar hasta el servidor para ser ejecutado.

    Ejecutarse en el navegador significa que el navegador tendrá la posibilidad de interpretar y ejecutar el lenguaje. Este hace eso a través de sus motores (engines) y cada navegador tiene el suyo propio. Si busca en internet por engines javascript encontrará nombres como V8, WebKit, SipderMoney, TraceMonkey, Gecko, Chakra, etc...

    El engine más usado es la V8 lanzado por Google y embebido en su navegador Chrome. Su popularidad, sin lugar a dudas, se debe al hecho de que es utilizado por el Node.js. Como mencionamos al principio, inicialmente el lenguaje se usaba para resolver problemas de interactividad de las páginas web, esta estaba en el lado del cliente (en el navegador) haciendo lo que los lenguajes del lado del servidor no podían hacer. Por contra, JavaScript estaba limitado a simplemente poder realizar mejorías en las páginas web, no es que eso fuera fácil o simple ni tan poco desmerecedor, pero el lenguaje estaba limitado al espacio del navegador.

    El Node.js puso un fin a ese límite, trajo el lenguaje hacia el lado del servidor colocándolo como competidor de los demás lenguajes de servidor como PHP, Python, Ruby, ASP y etc...

    Si ha trabajado con JavaScript antes de que trabajar con Node.js, debe sentirse excitado con la posibilidad de poder ejecutar JavaScript en el lado del servidor. Pero para quien nunca programó en JavaScript, debe saber que existen dos caminos que se deben trabajar (el del servidor y el del cliente) tal vez no sea nada asombroso, ya que su curva de aprendizaje será acentuada. Teniendo en cuenta que la opinión más importante es la suya y no la mía, le invito a emitir su opinión sobre la siguiente cuestión: ¿Cuál será la primera impresión que tendrá un principiante sobre JavaScript ahora que este puede ser ejecutada tanto en el lado del servidor como en el cliente?

    Si usted es un principiante o no, aún existen más preguntas que deberá tener en cuenta:

    •¿Debo aprender JavaScript del lado del servidor o del lado del cliente?

    •¿En cuál me inicio?

    •¿A cuál debo dedicarme más?

    No hay una única respuesta para estas preguntas. En mi opinión usted debe aprender las dos formas, comenzar por la que tengas más ganas y especialícese en la que más le guste, sin embargo nunca ignore el otro lado, si necesita más información trate de entender las diferencias entre un programador server-side y un front-end.

    Entonces, ¿Qué es JavaScript?

    JavaScript (a veces llamado sólo de JS) es un lenguaje de programación, leve, interpretado, orientado a objetos, basada en prototipos y en first-class functions (funciones de primera clase), más conocida como el lenguaje de script de la Web. También se utiliza en otros entornos como node.js y Apache CouchDB.

    Mozilla Foundation

    JavaScript es el lenguaje de programación que Netscape creó para dar vida (del lado del cliente - front end) a su navegador. El nombre tiene una orientación comercial, quisieron aprovechar el éxito de Java y escogieron un nombre similar. El resultado es que hasta hoy (2015) hay una confusión enorme. JavaScript no es Java (y viceversa). El padre de este se llama Brendan Eich.

    Netscape fue vendida y dio lugar a la fundación Mozilla, tomó los mandos del negocio y viene realizando un óptimo trabajo.

    La popularidad se dio por el hecho de que JavaScript hacía lo que ningún otro lenguaje podía hacer: transformar páginas HTML estáticas en algo dinámico sin tener que viajar hasta el servidor, estamos hablando del lado del cliente (front end). El Node.js, lanzado en 2009, también colaboró mucho en la popularidad de este lenguaje, llevándolo hacia el servidor.

    Parece algo que puede dominar en una tarde, JS parece simple, pero, en sus 15 años de historia hasta aquí, las mejores prácticas de JS parecían cambiar con las estaciones.. Kevin Yank y Cameron Adams (Simple JavaScript)

    ¿Está realmente JS Orientado a Objetos?

    JavaScript contiene objetos que pueden contener datos y métodos que actúan sobre esos datos. Los objetos pueden contener otros objetos. JavaScript no tiene clases, pero tiene constructores que son capaces de hacer lo que hacen las clases, incluyendo actuar como contenedores para las clases de variables y métodos. Este no tiene herencia orientada a la clase, pero tiene herencia orientada al prototipo.

    JavaScript es un lenguaje orientado a objetos. Eso significa que, en vez de tener funciones definidas globalmente para operar en valores de varios tipos, los propios tipos definen métodos para trabajar con valores. Para clasificar los elementos de un array a, por ejemplo, no pasamos a hacia una función sort(). En vez de eso, llamamos al método sort() de a:

    a.sort() // versión orientada a objetos de sort(a)

    ¿Es JavaScript seguro?

    Vamos a extender esa pregunta a: ¿El lenguaje de programación X es seguro?

    Ningún lenguaje de programación es seguro o inseguro, la pregunta correcta sería:

    ¿El desarrollador programa de forma segura?

    Lo que sucede con JavaScript es que el código queda expuesto a cualquier usuario, por ello, percibimos erróneamente, que JavaScript es inseguro, pero esto no es verdad. Seguro o inseguro es la forma en como se programa.

    En el caso de la programación client-side, con miras a que el código queda expuesto, no crearemos ningún código sensible (un código que pueda ser explorado por un hacker causando daños a la aplicación).

    Estandarización

    ECMAScript es la estandarización que rige el lenguaje JavaScript, en realidad este es el nombre oficial adoptado para el lenguaje, pero no pega de ninguna manera.

    ¿Porque tenemos un estándar? Porque cada navegador implementa el lenguaje de forma diferente, en otras palabras, si escribe un trozo de código JavaScript que funciona en el Firefox, por ejemplo, puede que no funcione en el Internet Explorer. Es más, JavaScript sufre del mismo problema que el HTML y el CSS, cada navegador lo implementa a su manera.

    En teoría, la estandarización obliga a las empresas fabricantes de navegadores a implementar como mínimo aquel conjunto de funcionalidades. (Edgar Damiani). Por eso el estándar ECMA es tan importante.

    Los documentos construidos exclusivamente con los recursos del lenguaje HTML son estáticos; es decir, se muestran siempre del mismo modo. Las posibilidades de interacción del usuario son muy reducidas, y se limitan al cambio de documento mediante los hipervínculos y a la recepción y envio de datos con formularios.

    Javascript es un lenguaje de programación, creado por Netscape y hoy ampliamente - pero no totalmente - estandarizado, capaz de actuar dentro de los documentos HTML y darles el carácter dinámico que los códigos HTML a solas no pueden conseguir. El uso conjunto de HTML, hojas de estilo y Javascript se acostumbra a denominar HTML dinámico o DHTML.

    Javascript presenta afinidades con el lenguaje C++, del cual deriva.

    JavaScript es un lenguaje de programación interpretado. Fue originalmente implementada como parte de los navegadores web para que los scripts pudieran ser ejecutados en el lado del cliente e interactuasen con el usuario sin la necesidad de que este script pase por el servidor, siendo controlado por el navegador, realizando comunicación asíncrona y modificando el contenido del documento mostrado.

    Actualmente es el principal lenguaje para la programación client-side en los navegadores web. Fue concebido para ser un lenguaje script con orientación a objetos basado en prototipos, tipado débil y dinámica y funciones de primera clase. Posee soporte a la programación funcional y presenta recursos como cierres y funciones de alto nivel comumente disponibles en lenguajes populares como Java y C++.

    Características de JavaScript

    Las siguientes características son comunes a todas las implementaciones conforme al ECMAScript.

    Imperativa y Estruturada

    JavaScript soporta los elementos de sintaxis de programación estruturada del lenguaje C (por ejemplo, if, while, switch). Una excepción es la cuestión del alcance: el alcance en bloques al estilo de C no es soportado por Javascript, en su lugar utiliza el alcance a nivel de función. JavaScript 1.7, sin embargo, soporta el alcance a nivel de bloque a través del comando let. Al igual que C, JavaScript hace distinción entre expresiones y comandos. Una diferencia sintática con C es fin de línea termina automáticamente el comando, siendo el punto-y-coma opcional al fin del mando.

    Dinámico

    Tipado dinámico

    Como en la mayoría de los lenguajes script, los tipos son asociados con valores, no con variables. Por ejemplo, la variable x podría ser asociada a un número y más tarde asociada a una string. JavaScript soporta varias formas de probar el tipo de un objeto, incluyendo el ducktyping.

    Basado en objetos

    JavaScript está casi completamente basado en objetos. Los objetos de JavaScript son arrays asociativos, aumentados con prototipos. Los nombres de la propiedad de un objeto son strings: obj.x = 10 y obj [x] = 10 son equivalentes, el punto en este ejemplo es la propiedad. Las propiedades y sus valores pueden ser añadidas, modificadas, o eliminadas en tiempo de ejecución. La mayoría de las propiedades de un objeto (y aquellos en su cadena de herencia mediante prototipo) puede ser enumerada usándose una estructura de repetición for...in. Javascript tiene un pequeño número de objetos por defecto en el lenguaje como window y document.

    Evaluación en tiempo de ejecución

    JavaScript incluye la función eval que consigue ejecutar en tiempo de ejecución comandos del lenguaje que estén escritos en una string.

    Funcional

    Funciones de primera clase

    En JavaScript las funciones son de primera clase, es decir, son objetos que tienen propiedades y métodos, y pueden ser pasados como argumentos, sean atribuidos a variables o retornados como otro objeto.

    Funciones anidadas

    Las funciones 'internas' o 'anidadas' son funciones definidas dentro de otras funciones. Son creadas cada vez que la función que las contiene (externa) es invocada. Además de eso, el alcance de la función externa, incluyendo las constantes, las variables locales y los valores de los argumentos, transforman parte del estado interno de cada objeto creado a partir de la función interna, aún después de que la ejecución de la función interna haya finalizado.

    Cierres

    JavaScript permite que las funciones anidadas sean creadas con el alcance semántico en el momento de su definición y posee el operador () para invocarlas en otro momento. Esa combinación de código puede ser ejecutado fuera del alcance en el cual fue definido, con su propio alcance durante la ejecución, es denominado, dentro de la ciencia de la computación, cierre.

    Basado en Prototipos

    Prototipos

    JavaScript usa prototipos en vez de clases para el mecanismo de la herencia. Es posible simular muchas características de la orientación a objetos basadaa en clases con prototipos.

    Funciones y métodos

    A diferencia de otros lenguajes orientados a objetos, no hay distinción entre la definición de una función y la definición de un método en JavaScript. La distinción sucede durante la llamada de la función; la función puede ser llamada como un método. Cuando una función es llamada como método de un objeto, la palabra this de la función es asociada a aquel objeto mediante tal invocación.

    Uso en páginas Web

    El uso primario de JavaScript es escribir funciones que son incrustadas o incluidas en páginas HTML y que interactúan con el Modelo de Objeto de Documentos (DOM) de la página. Algunos ejemplos de este uso son:

    abrir una nueva ventana con un control programado sobre su tamaño, posición y atributos;

    validar los valores de un formulario para garantizar que son válidos antes de ser enviados al servidor;

    cambiar imágenes a medida de que el mouse se mueve sobre ellas.

    Por el hecho de que el código JavaScript se ejecuta localmente en el navegador del usuario, y no en un servidor remoto, el navegador puede responder a tales acciones rápidamente, haciendo una aplicación más sensible. Además de eso, el código JavaScript puede detectar acciones de usuario que el HTML por si solo no puede, tales como que teclas son presionadas individualmente. Las aplicaciones como Gmail aprovechan esa ventaja: gran parte de la lógica de la interfaz de usuario está escrita en JavaScript, y JavaScript envía los requisitos de información, tales como el contenido de un correo electrónico, hacia el servidor. La tendencia más amplia de programación en Ajax explora de una manera similar este punto fuerte.

    Una JavaScript engine (también conocida como interpretador JavaScript o una implementación JavaScript) interpreta el código fuente JavaScript y lo ejecuta de forma adecuada. La primera implementación JavaScript fue creada por Brendan Eich en la Netscape Communications Corporation, para el Navegador Netscape. La implementación, llamada SpiderMonkey, está implementada en C y ha sido actualizada conforme a la edición 3 del ECMA-262. La implementación Rhino, creada primeramente por Norris Boyd, es una implementación de JavaScript en Java. Rhino, como SpiderMonkey, se ha realizado conforme a la tercera edición del ECMA-262.

    Por ser JavaScript el único lenguaje que la mayoría de los navegadores populares soportan, se hecho un lenguaje objetivo para muchos frameworks en otros lenguajes, a pesar del hecho de no haber sido planeado para tal. No obstante las limitaciones de performace inherente a su naturaleza dinámica, la creciente velocidad de las implementaciones JavaScript ha hecho del mismo un práctico lenguaje intermediario.

    Compatibilidad

    Ya que JavaScript se ejecuta en ambientes variables, una parte importante de las pruebas y de la depuración de su código consiste en la verificación de la compatibilidad entre los distintos navegadores.

    Las interfaces DOM para la manipulación de páginas web no son parte del patrón ECMA, ni del propio JavaScript. Oficialmente, son definidas por un esfuerzo de estandarización de la W3C; en la práctica, las implementaciones en los navegadores difieren del patrón de unos para los otros, y tampoco todos navegadores ejecutan JavaScript.

    Para lidiar con esas diferencias, los desarrolladores de Javascript intentan con frecuencia escribir códigos que sean conformes con el patrón común de la mayoría de los navegadores; si no es posible eso, intenta escribir de manera ad-hoc un código que verifique la presencia de ciertos recursos y que se comporte de la manera adecuada en el caso de que tales recursos no estén disponibles. En algunos casos, dos navegadores pueden implementar una misma funcionalidad con comportamientos diferentes, y los desarrolladores pueden encontrar práctico detectar que navegador está ejecutando y cambiar el comportamiento de sus scripts para adecuarse a eso. Los desarrolladores también pueden usar bibliotecas o herramientas que abstraen tales diferencias entre los navegadores.

    Además de eso, los scripts pueden no funcionar para algunos usuarios. Por ejemplo, un usuario puede:

    Usar un navegador antiguo o raro con un soporte DOM incompleto o que no sea común.

    Usar un navegador de un PDA o de un teléfono móvil que no sea apto para ejecutar JavaScript.

    Tener la ejecución del JavaScript deshabilitada por normas de seguridad.

    Para dar soporte a tales usuarios, los desarrolladores web intentan crear páginas que sean robustas a los clientes que no soporten el JavaScript de la página. En particular, una página debe funcionar a pesar de que las funcionalidades extras que un JavaScript provee. Una manera alternativa que muchos encuentran preferible es que la página sea desarrollada primero a partir de tecnologías básicas que funcionen en todos los navegadores, y a partir de ahí mejorar para los usuarios que tengan JavaScript.

    Accesibilidad

    Asumiendo que el usuario no tenga deshabilitada su ejecución, se puede utilizar JavaScript del lado cliente para mejorar la experiencia de un usuario con deficiencia física o visual.

    Los lectores de pantalla utilizados por las personas ciegas o con visión parcial pueden detectar la presencia de JavaScript y de esa forma acceder y leer el DOM de la página después que sus scripts sean ejecutados. En estos casos se recomienda que el HTML sea lo más conciso, navegable y rico semánticamente posible, tenga la página scripts o no. No se recomienda que el código JavaScript de una página sea totalmente dependiente de los eventos provenientes del mouse ya que los usuarios que no tengan u optan por no usar el mouse no serán aptos para usar los beneficios de tal código. De la misma forma, aunque los hipervínculos y los formularios puedan ser navegados y operados desde teclado, JavaScript cuenta con eventos independientes del dispositivo de usuario tales como onfocus y onchange que son los más recomendados en la mayoría de los casos.

    No se recomienda utilizar JavaScript de una manera que sea confusa o desorientadora para cualquier usuario de internet. Por ejemplo, usar JavaScript para modificar o deshabilitar la funcionalidad normal de un navegador, tal como cambiar la forma con la que el botón derecho o el evento de actualización funcionan, deben de ser evitadas. De la misma forma, los eventos de interrupción en los que el usuario puede no ser conocedor reducen la sensación de control del usuario, así como los scripts inesperados que cambian el contenido de la página.

    Frecuentemente el proceso de hacer páginas web complejas tan accesibles cuánto es posible se transforma en un problema nada trivial, donde ciertas decisiones son asunto de debate y de opinión. Sin embargo, las tecnologías asistidas están constantemente evolucionando y las nuevas recomendaciones e informaciones relevantes suelen publicarse en la web y en los medios de comunicación tradicionales.

    Seguridad

    JavaScript y el DOM representan un gran potencial para los desarrolladores maliciosos que escriben scripts para ejecutar en un cliente mediante web. Los navegadores están preparados para evitar y contener este riesgo de dos maneras. La primera es que scripts sean ejectuados en una sandbox en la cual sólo se pueden ejecutar acciones relacionadas a internet, no tareas de programación de propósito general como crear archivos. La segunda es que los scripts están limitados por la regla del mismo origen: los scripts de una web no tienen acceso a informaciones como nombres de usuario, contraseñas o cookies enviadas desde otra web. La mayoría de los bugs en JavaScript

    ¿Disfrutas la vista previa?
    Página 1 de 1