DEW · Tema 7: Programación AJAX en JavaScript

Tema 7: Programación AJAX en JavaScript es uno de los temas públicos de Desarrollo Web Entorno Cliente dentro de TesIA Exam. Aquí puedes localizar preguntas indexables, tests, cuestionarios y exámenes que lo incluyen.

30 preguntas 3 exámenes Material de estudio público

Cómo estudiar este tema

Primero lee el resumen completo para fijar el marco del tema. Después usa la guía de estudio para ordenar el repaso y termina con las preguntas, revisando siempre la respuesta correcta y la explicación breve.

Esta página pública está pensada para consulta y repaso. Para practicar con progreso, favoritos y modo examen puedes continuar dentro de TesIA Exam con los mismos exámenes relacionados.

Material de estudio disponible

Aquí se muestran el resumen completo, la guía completa y los recursos públicos enlazados del tema para que la página sea útil también fuera de la app.

Resumen del tema

Programación AJAX en JavaScript: Guía de Referencia Técnica
Resumen Ejecutivo
Este documento sintetiza los fundamentos, la arquitectura y la implementación de la tecnología AJAX (JavaScript Asíncrono y XML) dentro del desarrollo web moderno. AJAX no constituye un lenguaje de programación nuevo, sino una técnica que integra múltiples estándares existentes (HTML, CSS, DOM, JavaScript y el objeto XMLHttpRequest) para permitir una comunicación asíncrona entre el navegador y el servidor.Los puntos clave identificados incluyen:
* Interactividad y Dinamismo: AJAX elimina la necesidad de recargar páginas completas, permitiendo actualizaciones parciales del contenido y mejorando la estética y usabilidad.
* El Motor de AJAX: El objeto XMLHttpRequest (XHR) es el núcleo técnico que gestiona las peticiones en segundo plano.
* Modelos de Comunicación: Se establece una distinción crítica entre el modelo clásico (síncrono/bloqueante) y el modelo AJAX (asíncrono/no bloqueante).
* Estandarización y Formatos: Aunque el nombre incluye XML, el formato JSON se destaca por su simplicidad y afinidad nativa con JavaScript.
* Librerías Cross-browser: El uso de herramientas como jQuery es fundamental para simplificar el desarrollo, garantizando la compatibilidad entre diversos navegadores y reduciendo drásticamente las líneas de código necesarias.
1. Fundamentos y Definición de AJAX
El término AJAX fue acuñado por Jesse James Garrett en 2005. Se define como una técnica de desarrollo web que permite la comunicación en segundo plano entre el cliente y el servidor.
Objetivos y Tecnologías Integradas
AJAX no es una tecnología aislada, sino la unión de varios componentes con objetivos específicos:
* Presentación: Basada en estándares mediante HTML y CSS .
* Interacción Dinámica: Uso amplio de técnicas del DOM (Document Object Model) para manipular la presentación.
* Intercambio de Datos: Empleo de formatos como XML, XSLT y JSON .
* Recuperación Asíncrona: Uso del objeto XMLHttpRequest .
* Integración: JavaScript actúa como el nexo que une todos los componentes anteriores.
Ventajas de su Implementación
* Basado en estándares abiertos y válido para cualquier plataforma o navegador.
* Independiente de la tecnología utilizada en el servidor.
* Base fundamental de la Web 2.0 , fomentando la interoperabilidad y el diseño centrado en el usuario.
2. Modelos de Aplicación Web: Síncrono vs. Asíncrono
La transición del modelo clásico al modelo AJAX representa un cambio de paradigma en la experiencia del usuario.
El Modelo Clásico (Síncrono)
1. El usuario dispara una solicitud HTTP.
2. El servidor procesa la información.
3. El servidor devuelve una página HTML completa.
* Limitación: El navegador se bloquea durante el procesamiento; el usuario debe esperar sin poder interactuar hasta recibir la respuesta.
El Modelo AJAX (Asíncrono)
1. Las acciones del usuario se convierten en peticiones gestionadas por un motor AJAX (programado en JavaScript).
2. El motor realiza la solicitud al servidor en segundo plano.
3. El usuario continúa interactuando con la página sin interrupciones.
4. Al recibir la respuesta, el motor actualiza solo la parte necesaria de la interfaz.
3. Requerimientos Técnicos y Entorno de Desarrollo
Para programar con AJAX, ya no basta con abrir un archivo local en el navegador; se requiere una infraestructura de servidor.
Componentes Necesarios
* Servidor Web: Apache, ligHTTPd, entre otros.
* Servidor de Bases de Datos: MySQL, MariaDB, PostgreSQL, etc.
* Lenguaje de Servidor: PHP, ASP, etc.
Soluciones Integradas (Stacks)
Es común utilizar paquetes que agrupan estos componentes según el sistema operativo:
* LAMP: Linux, Apache, MariaDB y PHP.
* WAMP: Windows, Apache, MariaDB y PHP.
* XAMPP: Una aplicación multiplataforma (Windows/Linux) y portable que facilita la instalación de todo el entorno de manera sencilla.
4. El Corazón de AJAX: El API XMLHttpRequest (XHR)
El objeto XMLHttpRequest es el encargado de realizar peticiones HTTP/HTTPS directamente al servidor y cargar las respuestas en la página del cliente.
Evolución Histórica
* Origen: Desarrollado inicialmente por Microsoft para Outlook Web Access (1999) e implementado vía ActiveX en Internet Explorer 5.0.
* Adopción: Mozilla desarrolló una interfaz equivalente para su motor Gecko en 2000. Se convirtió en estándar de facto en 2005 (Safari, Opera, etc.).
* Estandarización: El W3C publicó el primer borrador de especificaciones en 2006. En 2008 se introdujo el "Nivel 2" para incluir soporte extendido.
Métodos Principales
Método,Descripción
"open(metodo, url, async, user, pass)","Especifica el tipo de solicitud (GET/POST), la URL y si es asíncrona."
send(datos),Envía la solicitud. Los datos se incluyen solo en peticiones POST.
abort(),Cancela la solicitud actual.
setRequestHeader(),Añade pares etiqueta/valor a la cabecera que se enviará al servidor.
getAllResponseHeaders(),Devuelve la información completa de la cabecera de respuesta.
Propiedades Críticas
* readyState : Almacena el estado de la petición (0: no inicializada, 1: conexión establecida, 2: recibida, 3: procesando, 4: terminada).
* onreadystatechange : Función que se ejecuta automáticamente ante cualquier cambio en readyState.
* responseText : Respuesta del servidor como cadena de texto.
* responseXML : Respuesta del servidor en formato XML.
* status / statusText : Estado numérico (ej. 200 para OK, 404 para No encontrado) y su descripción textual.
5. Gestión de Envío y Recepción de Datos
Métodos de Envío
1. GET: Los parámetros se envían formando parte de la URL (ej. procesar.php?nombre=Bob). El método send() se llama sin argumentos.
2. POST: Los datos se envían en el cuerpo de la petición. Requiere configurar la cabecera Content-Type como application/x-www-form-urlencoded antes de usar send(datos).
Formatos de Recepción
* XML: Los datos deben consultarse mediante responseXML. Requiere el uso de métodos del DOM para extraer la información.
* JSON (JavaScript Object Notation): Es el formato recomendado por su simplicidad. Utiliza la nomenclatura de JavaScript, permitiendo que los resultados se usen directamente mediante JSON.parse(peticion.responseText) sin conversiones complejas.
6. Librerías Cross-browser y el Ecosistema Web 2.0
El desarrollo nativo con AJAX puede presentar dificultades debido a las incompatibilidades entre navegadores y la verbosidad del código.
Ventajas de las Librerías (ej. jQuery)
* Ahorro de tiempo: Permiten realizar peticiones AJAX con una sola línea de código.
* Abstracción: El programador no necesita preocuparse por crear el objeto XMLHttpRequest manualmente ni gestionar estados complejos.
* Compatibilidad (Cross-browser): La librería gestiona internamente las diferencias entre navegadores.
* Funcionalidad extendida: Facilitan la creación de efectos, animaciones y cuentan con múltiples complementos gratuitos.
Contexto de la Web 2.0
AJAX es un pilar de las aplicaciones híbridas o Mashups , comunidades web, redes sociales y servicios de alojamiento de vídeos. Estas herramientas facilitan la colaboración y el intercambio eficiente de información.
Citas para la Reflexión
"Hablar, es el arte de sofocar e interrumpir el pensamiento." — Carlyle, Thomas."Tan sólo por la educación puede el hombre llegar a ser hombre. El hombre no es más que lo que la educación hace de él." — Kant, Immanuel."El éxito no se logra sólo con cualidades especiales, es sobre todo un trabajo de constancia, de método y de organización." — Sergent, J.P.

Guía de estudio

Guía de Estudio: Programación AJAX en JavaScript
Esta guía de estudio ha sido diseñada para profundizar en los conceptos fundamentales, técnicos y prácticos de la tecnología AJAX y el objeto XMLHttpRequest, basándose en los materiales de formación profesional sobre desarrollo web en el entorno cliente.
Cuestionario de Repaso
Responda a las siguientes preguntas de forma concisa (2 a 3 oraciones), utilizando únicamente la información proporcionada en el material de origen.
1. ¿Qué es AJAX y cuál es su propósito fundamental en el desarrollo web?
2. ¿Quién acuñó el término AJAX y en qué fecha se presentó formalmente?
3. Mencione las cinco tecnologías principales que se combinan para formar AJAX.
4. ¿Cuál es la diferencia principal entre el modelo clásico de aplicaciones web y el modelo AJAX respecto a la interacción del usuario?
5. ¿Qué requisitos de infraestructura técnica son necesarios para ejecutar aplicaciones que utilizan AJAX?
6. Describa brevemente el origen histórico del objeto XMLHttpRequest .
7. ¿Qué función cumple el "motor AJAX" en la comunicación entre el cliente y el servidor?
8. ¿Qué pasos adicionales se deben realizar al enviar datos mediante el método POST en comparación con el método GET?
9. ¿Qué ventaja ofrece el formato JSON sobre el formato XML al recibir datos del servidor?
10. ¿Por qué es recomendable el uso de librerías como jQuery para la programación con AJAX?
Clave de Respuestas
1. AJAX (JavaScript Asíncrono y XML) es una técnica de desarrollo web que permite la comunicación en segundo plano entre el navegador y el servidor. Su propósito es realizar peticiones y gestionar respuestas sin necesidad de recargar la página completa, logrando aplicaciones más interactivas y dinámicas.
2. El término fue presentado por primera vez por Jesse James Garrett el 18 de febrero de 2005, en su artículo titulado "A New Approach to Web Applications".
3. Las tecnologías son HTML y CSS para la presentación, DOM para la interacción dinámica, XML/JSON para el intercambio de información, XMLHttpRequest para el intercambio asíncrono y JavaScript como nexo de unión de todos los componentes.
4. En el modelo clásico, el usuario debe esperar y el navegador se bloquea hasta que el servidor devuelve una página completa. En el modelo AJAX, el usuario puede seguir interactuando con la página mientras la petición se procesa en segundo plano, evitando esperas y bloqueos.
5. Se requiere un servidor web (como Apache o ligHTTPd), un servidor de bases de datos (MySQL, MariaDB o PostgreSQL) y un lenguaje de servidor (como PHP o ASP). Herramientas como XAMPP facilitan la instalación de estos componentes de forma agrupada.
6. El concepto surgió con los desarrolladores de Outlook Web Access de Microsoft y se implementó inicialmente en la librería MSXML para Internet Explorer 5.0 en 1999. Posteriormente, Mozilla desarrolló una interfaz similar que denominó XMLHttpRequest, la cual se convirtió en el estándar funcional para el resto de los navegadores.
7. El motor AJAX actúa como intermediario que gestiona las peticiones del usuario y se comunica con el servidor de forma independiente. Esto permite que la comunicación suceda de manera asíncrona , evitando que el usuario dependa del indicador de carga del navegador o vea pantallas en blanco.
8. A diferencia de GET, donde los parámetros van en la URL, en POST se debe modificar el método open para indicar el tipo de petición, configurar una cabecera de tipo de contenido (Content-Type) mediante setRequestHeader y pasar los parámetros dentro del método send().
9. El formato JSON utiliza la propia nomenclatura de JavaScript , lo que permite utilizar los resultados directamente en la aplicación sin apenas conversiones intermedias. Esto lo hace mucho más simple de leer, escribir e interpretar en comparación con la estructura más compleja del XML.
10. Estas librerías permiten realizar peticiones con muy pocas líneas de código y solucionan automáticamente los problemas de incompatibilidad entre navegadores (cross-browser). Además, ofrecen métodos simplificados para manejar efectos y animaciones sin necesidad de codificar directamente sobre la API de XMLHttpRequest.
Temas para Ensayo
Proponga un desarrollo extendido para las siguientes cuestiones (no se incluyen respuestas):
1. Evolución de la Web 2.0: Analice cómo la llegada de AJAX transformó la web de un medio puramente hipertextual a una plataforma de aplicaciones de software interactivas.
2. Sincronía vs. Asincronía: Discuta las implicaciones técnicas y de experiencia de usuario al elegir entre una petición síncrona y una asíncrona, considerando que la primera no es recomendable en JavaScript moderno.
3. Estandarización del W3C: Reflexione sobre la importancia de los borradores de especificaciones de la W3C para el objeto XMLHttpRequest (Niveles 1 y 2) en la interoperabilidad del desarrollo web actual.
4. Seguridad y Cross-Browser: Evalúe los desafíos que enfrentan los desarrolladores al gestionar peticiones entre diferentes dominios y navegadores, y cómo los frameworks modernos mitigan estos riesgos.
5. Formatos de Intercambio de Datos: Compare detalladamente el uso de XML y JSON en aplicaciones empresariales, considerando la facilidad de manipulación a través del DOM frente a la integración nativa de objetos JavaScript.
Glosario de Términos Clave
A continuación se definen los conceptos técnicos fundamentales presentados en el material:| Término | Definición || ------ | ------ || AJAX | Acrónimo de Asynchronous JavaScript and XML. Técnica que permite actualizar partes de una página web sin recargarla completamente. || API | Interfaz de programación de aplicaciones. En este contexto, se refiere al conjunto de métodos y propiedades de XMLHttpRequest para la comunicación cliente-servidor. || Asíncrono | Tipo de comunicación donde el cliente no tiene que esperar la respuesta del servidor para continuar con su actividad, permitiendo procesos simultáneos. || Cross-browser | Capacidad de una tecnología o código para funcionar correctamente en diferentes navegadores web sin variaciones significativas. || DOM | Document Object Model. Estructura de objetos que representa el contenido de una página web y que AJAX modifica dinámicamente. || JSON | JavaScript Object Notation. Formato ligero de intercambio de datos basado en la sintaxis de objetos de JavaScript. || LAMP / WAMP | Acrónimos que designan pilas de software para servidores basadas en Linux/Windows, Apache, MariaDB/MySQL y PHP. || readyState | Propiedad de XMLHttpRequest que indica el estado actual de la petición (desde 0 para no inicializada hasta 4 para completada). || status | Código numérico devuelto por el servidor (ej: 200 para éxito, 404 para no encontrado) que indica el resultado de la petición HTTP. || XMLHttpRequest | Objeto central de JavaScript que proporciona la funcionalidad necesaria para enviar peticiones HTTP/HTTPS al servidor y recibir datos en segundo plano. || XAMPP | Aplicación multiplataforma que agrupa servidor web, base de datos y lenguajes de servidor, facilitando el desarrollo local de aplicaciones AJAX. |

Preguntas, respuestas y explicaciones del tema

Listado público sin duplicados de las preguntas del tema, con su respuesta correcta y una explicación breve para facilitar el estudio y el repaso desde buscadores.

#2

2. Para indicar que queremos hacer una petición AJAX sincrona, lo haremos con

  1. A) Ningún parámetro ya que, con AJAX sólo podemos hacer peticiones asincronas
  2. B) Un parámetro del método open.
  3. C) Un parámetro del método send.
  4. D) La propiedad onreadystatechange
Respuesta correcta

B) Un parámetro del método open.

Explicación:

La respuesta correcta es B. El método open() del objeto XMLHttpRequest acepta un tercer parámetro booleano que, si se establece en false, indica que la petición debe ser síncrona.

#7

2. El código 200 devuelta por el servidor indica

  1. A) Que se estableció una conexión con el servidor.
  2. B) Que la solicitud terminó y ya tenemos una respuesta disponible
  3. C) Que se está procesando la solicitud
  4. D) Que la página solicitada se encontró en el servidor.
Respuesta correcta

D) Que la página solicitada se encontró en el servidor.

Explicación:

La respuesta correcta es D. El código HTTP 200 (OK) indica que la solicitud ha tenido éxito y el servidor ha encontrado el recurso solicitado.
No debe confundirse con los códigos de estado de la conexión o de procesamiento de la solicitud.

#8

5. Las siglas JSON quieren decir:

  1. A) Javascript Source Object Notation.
  2. B) Javascript Source Object Nate.
  3. C) JavaScript Object Notation.
  4. D) JavaScript Source Nomenclature
Respuesta correcta

C) JavaScript Object Notation.

Explicación:

La respuesta correcta es C. JSON corresponde a JavaScript Object Notation .
Es un formato ligero de intercambio de datos que resulta fácil de leer para los humanos y sencillo de procesar para las máquinas, basado en la sintaxis de objetos de JavaScript .

#9

6. ¿Cuándo pondremos null como parámetro del método send del objeto XHR?

  1. A) Cuando no se envia ningún parámetro en la petición AJAX.
  2. B) Cuando se usa el método POST para la petición.
  3. C) Cuando se usa una petición sincrona..
  4. D) Cuando se usa el método GET para la petición.
Respuesta correcta

D) Cuando se usa el método GET para la petición.

Explicación:

La respuesta correcta es D. Al utilizar el método GET, los parámetros se envían en la URL, por lo que no es necesario pasarlos como segundo argumento en el método send del objeto XHR.

#10

4. ¿Cuál de los siguientes no es un framework de JavaScript?

  1. A) Query.
  2. B) Django.
  3. C) Prototype.
  4. D) Mootols.
  5. E) dojo.
Respuesta correcta

B) Django.

Explicación:

La respuesta correcta es B. Django es un framework de desarrollo web de alto nivel escrito en Python, no en JavaScript .
El resto de las opciones como jQuery, Prototype, Mootools y Dojo son frameworks o librerías del ecosistema JavaScript .

#13

1. ¿Cuál es el nombre del objeto que nos permite programar en AJAX en JavaScript?

  1. A) AjaxObject
  2. B) IXMLHttpRequest
  3. C) XMLHttpRequest
  4. D) nslXMLHttpRequest()
Respuesta correcta

C) XMLHttpRequest

Explicación:

La respuesta correcta es C. XMLHttpRequest es el objeto nativo de JavaScript utilizado para realizar peticiones asíncronas al servidor, permitiendo la actualización de partes de una página web sin recargarla completamente.

#14

10. Si la petición AJAX nos devuelve la respuesta en formato HTML, la respuesta estará en

  1. A) La propiedad responseText
  2. B) La propiedad resultHtml
  3. C) La propiedad responseHtml
  4. D) La propiedad statusHtml
Respuesta correcta

A) La propiedad responseText

Explicación:

La respuesta correcta es A. Cuando el servidor devuelve HTML o texto plano, el contenido se encuentra en la propiedad responseText del objeto de la petición .
Desde allí, el contenido puede inyectarse directamente en el DOM.

#18

9. Un framework es:

  1. A) Una librería de JavaScript
  2. B) Un conjunto de herramientas/utilidades de programación.
  3. C) Una estructura de programación
  4. D) Una estructura de datos.
Respuesta correcta

B) Un conjunto de herramientas/utilidades de programación.

Explicación:

La respuesta correcta es B. Un framework proporciona una estructura y un conjunto de herramientas predefinidas que facilitan el desarrollo de aplicaciones, ofreciendo soluciones comunes a problemas recurrentes. A diferencia de una librería, que se enfoca en funcionalidades específicas, un framework dicta la arquitectura general del proyecto.

#19

9. La propiedad readyState contiene:

  1. A) El estado de la petición XHR.
  2. B) Un 0 cuando el servidor está preparado
  3. C) El estado devuelto por el servidor.
  4. D) El estado en formato de texto devuelto en la petición al servidor.
Respuesta correcta

A) El estado de la petición XHR.

Explicación:

La respuesta correcta es A. La propiedad readyState de una instancia de XMLHttpRequest devuelve el estado en el que se encuentra la petición (desde 0 para no inicializada hasta 4 para completada) .

#20

4. Para poder utilizar los datos recibidos en formato JSON, en nuestra aplicación JavaScript tendremos que

  1. A) Evaluar los datos recibidos con la función eval()
  2. B) Utilizar los métodos del DOM pera acceder a los resultados.
  3. C) Hacer las peticiones usando el método GET.
  4. D) Hacer las peticiones usando el método POST.
Respuesta correcta

A) Evaluar los datos recibidos con la función eval()

Explicación:

La respuesta correcta es A. La función eval() en JavaScript permite ejecutar código JavaScript que se encuentra en una cadena de texto, lo cual es necesario para interpretar los datos JSON recibidos y hacerlos utilizables en tu aplicación.

#24

8. ¿Cuál es el método que nos permite cargar directamente el resultado de una petición AJAX en un objeto DIV, por ejemplo?

  1. A) $.load()
  2. B) .ajax()
  3. C) $.post()
  4. D) .load()
Respuesta correcta

D) .load()

Explicación:

La respuesta correcta es D. El método .load() de jQuery es la forma más directa de cargar contenido HTML desde un servidor y colocarlo en un elemento DOM específico, como un DIV. Es una forma abreviada y conveniente para realizar peticiones AJAX simples que solo necesitan insertar el resultado.

#25

7. $.post() es un método, que nos permite hacer una petición AJAX enviando datos por el método POST. ¿Verdadero o Falso?

  1. A) Verdadero
  2. B) Falso
Respuesta correcta

B) Falso

Explicación:

La respuesta correcta es B. En el material se refiere a $.ajax() como una función. Si la pregunta es muy estricta con la terminología, podrían argumentar que en jQuery estos son funciones globales del objeto jQuery y no métodos de una instancia, aunque en el lenguaje cotidiano de programación se usen como sinónimos.

Método de "envío" vs. Método "HTTP": La pregunta dice "enviando datos por el método POST". Técnicamente, los datos se envían en el cuerpo (body) de la petición HTTP, y el "método" es el tipo de instrucción HTTP (POST). Es una distinción semántica muy rebuscada, pero a veces se usa en exámenes para invalidar una respuesta.

No es nativo: Si la pregunta implica que es un método de JavaScript estándar, sería falso, ya que es un método/función exclusivo de la librería jQuery.

#26

3. Si estamos escribiendo los parámetros dentro del método send del objeto XHR:

  1. A) Estamos usando el método GET para hacer la petición.
  2. B) Estamos usando el método POST para hacer la petición,
  3. C) Estamos usando una petición sincrona.
  4. D) Estamos usando cualquier método de envio POST o GET, es indiferente.
Respuesta correcta

B) Estamos usando el método POST para hacer la petición,

Explicación:

La respuesta correcta es B. Cuando se utiliza el método POST, los datos se envían en el cuerpo de la petición a través del método send() .
En cambio, en una petición GET, el método send() no lleva parámetros porque los datos viajan en la propia URL .

#30

6. Indica cual es la instrucción correcta para realizar una petición AJAX con jQuery

  1. A) $.POST()
  2. B) $.XMLHttpRequest()
  3. C) $.ajax()
  4. D) $.send()
Respuesta correcta

C) $.ajax()

Explicación:

La respuesta correcta es C. La función $.ajax() de jQuery es la más versátil y recomendada para realizar peticiones AJAX, permitiendo configurar diversos parámetros como el tipo de petición, la URL, los datos a enviar y las funciones de callback.

Exámenes que incluyen este tema

Practicar este tema en TesIA Exam

Abre la app para entrenar este contenido en modo estudio o examen y guardar tu progreso.

Abrir TesIA Exam