SlideShare una empresa de Scribd logo
UNIDAD 3 AJAX 
Ingeniería en Sistemas Computacionales 
Antonio Álvarez de la Rocha 
Campos Muñoz Iosdy Gisela 
1
Objetivo de la Actividad: 
Entender y exponer conceptos y ejemplos relacionados con AJAX. 
2 
•Agenda 
13 - Mostrar un gif animado mientras se envían y reciben los 
datos del servidor. 
14- Paginación con AJAX 
15-Cargar un control de tipo select
3 
• Hasta ahora mientras se actualiza la página mostramos 
un texto: 'Procesando...', es muy común utilizar un gif 
animado que represente tal operación.
4 
• Haremos una serie de paginas que nos permitan enviar los datos 
cargados en un formulario al servidor en forma asíncrona y 
mostraremos un gif animado mientras dura el envió de datos.
Código HTML 
5 
<html> 
<head> 
<title>Problema</title> 
<script src="funciones.js" language="JavaScript"></script> 
</head> 
<body> 
<form action="pagina1.php" method="post" id="formulario"> Nombre:<input type="text" 
name="nombre" id="nombre" size="20"><br> 
Comentarios:<br> 
<textarea name="comentarios" id="comentarios" rows="10" cols="50"></textarea><br> 
<input type="submit" value="Enviar" id="enviar"> 
<span id="resultados"></span><br> 
<a href="comentarios.txt">Ver resultados</a> 
</form> 
</body> 
</html>
Código Java Script 
addEvent(window,'load',inicializarEventos,false); 
function inicializarEventos() 
{ 
var ref=document.getElementById('formulario'); 
addEvent(ref,'submit',enviarDatos,false); 
} 
function enviarDatos(e) 
{ 
if (window.event) 
window.event.returnValue=false; 
else 
if (e) 
e.preventDefault(); 
enviarFormulario(); 
} 
function retornarDatos() 
{ 
var cad=''; 
var nom=document.getElementById('nombre').value; 
var com=document.getElementById('comentarios').value; 
cad='nombre='+encodeURIComponent(nom)+'&comentarios='+encodeURIComponent(com); 
return cad; } 
6
7 
var conexion1; 
function enviarFormulario() 
{ 
conexion1=crearXMLHttpRequest(); conexion1.onreadystatechange = procesarEventos; 
conexion1.open('POST','pagina1.php', true); conexion1.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
conexion1.send(retornarDatos()); 
} 
function procesarEventos() 
{ 
var resultados = document.getElementById("resultados"); if(conexion1.readyState == 4) 
{ 
if (conexion1.status==200) 
resultados.innerHTML = 'Gracias.'; 
Else 
alert(conexion1.statusText); 
} 
else 
{ 
resultados.innerHTML = '<img src="../cargando.gif">'; 
} 
} 
//*************************************** //Funciones comunes a todos los problemas 
//*************************************** function addEvent(elemento,nomevento,funcion,captura) 
{ 
if (elemento.attachEvent) 
{ 
elemento.attachEvent('on'+nomevento,funcion); 
return true; 
} 
Else 
if (elemento.addEventListener) 
{
PHP 
• <?php 
• header('Content-Type: text/html; charset=ISO-8859-1'); 
$ar=fopen("comentarios.txt","a") or 
• die("No se pudo abrir el archivo"); 
fputs($ar,"Nombre:".$_REQUEST['nombre']."n"); 
fputs($ar,"Comentarios:".$_REQUEST['comentarios']."nn"); 
• fclose($ar); 
• sleep(1); 
• ?> 
8
Ejemplo de Gif Animado. 
9
14. Paginación con AJAX 
10 
• Un lugar donde puede ayudar el uso de AJAX es en la 
paginación de datos mientras otro recurso en la página se está 
ejecutando. Confeccionaremos una página que muestre un video 
e inmediatamente en la parte inferior mostraremos los 
comentarios del video paginados. 
• Sin utilizar AJAX estamos obligados a recargar completamente 
la página lo que haría imposible ver el video y recorrer los 
comentarios en forma completa (considerando que solo parte de 
los comentarios están en la página)
Ejemplo de paginación. 
11 
• Una pagina que muestre un video e inmediatamente en la parte 
inferior muestre los comentarios del video paginado. Actualizar los 
datos de forma asíncrona.
12 
• <html> 
• <head> 
• <title>Problema</title> 
• <script src="funciones.js" language="JavaScript"></script> </head> 
• <body> 
• <object width="425" height="350"><param name="movie" 
value="http://www.youtube.com/v/60og9gwKh1o"></param><param name="wmode" 
value="transparent"></param><embed src="http://www.youtube.com/v/60og9gwKh1o" 
type="application/x-shockwave-flash" 
• wmode="transparent" width="425" height="350"></embed></object> 
• <br> 
• <div id="detalles"> 
• </div> 
• </body> 
• </html>
• addEvent(window,'load',inicializarEventos,false); 
function inicializarEventos() 
{ 
cargarPagina('pagina2.php'); 
} 
function presionEnlace(e) 
{ 
if (window.event) 
{ 
window.event.returnValue=false; 
var url=window.event.srcElement.getAttribute('href'); cargarPagina(url); 
} 
else 
if (e) 
{ 
e.preventDefault(); 
var url=e.target.getAttribute('href'); 
cargarPagina(url); 
} 
} 
13
Código PHP 
• var conexion1; 
• function cargarPagina(url) 
• { 
• if(url=='') 
• { return; 
• } 
• conexion1=crearXMLHttpRequest(); 
conexion1.onreadystatechange = procesarEventos; 
conexion1.open("GET", url, true); conexion1.send(null); 
• } 
14
Ejemplo. 
15
15.Cargar un control de tipo select 
16 
• Confeccionaremos un problema que contenga dos controles de 
tipo select. En el primero almacenaremos una lista de carreras 
de estudio ("Analista de Sistemas", "Telecomunicaciones" y 
"WebMaster") 
• Cuando se seleccione una carrera enviaremos una petición al 
servidor para que retorne todas las materias que tiene esa carrera 
y procederemos a la carga del segundo select.
Código HTML 
• <script src="funciones.js" language="JavaScript"></script> 
• </head> 
• <body> 
• <h1>Prueba de cargar un control de tipo select recuperando datos del servidor 
• mediante AJAX</h1> 
• Seleccione la carrera: 
• <select id="carreras" name="carreras"> 
• <option value="0">Seleccionar....</option> 
• <option value="1">Analista de sistemas</option> 
• <option value="2">Telecomunicaciones</option> 
• <option value="3">WebMaster</option> 
• </select><span id="espera"></span><br> 
• Materias de la carrera: 
• <select id="materias" name="materias"> 
• </select><br> 
• </body> 
• </html> 
17
JavaScript 
• addEvent(window,'load',inicializarEventos,false); 
• function inicializarEventos() 
• { 
• var select1=document.getElementById('carreras'); 
• addEvent(select1,'change',mostrarMaterias,false); 
• } 
• var conexion1; 
• function mostrarMaterias(e) 
• { 
• var codigo=document.getElementById('carreras').value; 
• if (codigo!=0) 
• { 
• conexion1=crearXMLHttpRequest(); 
• conexion1.onreadystatechange = procesarEventos; 
• conexion1.open('GET','pagina1.php?cod='+codigo, true); 
• conexion1.send(null); 
• } 
• else 
• { 
• var select2=document.getElementById('materias'); 
• select2.options.length=0; 
• } 
• } 
18
PHP 
• <?php 
• $car=$_REQUEST['cod']; 
• if ($car==1) 
• { 
• $materias=array('Programacion I','Analisis Matematico', 
• 'Estructura de las Organizaciones','Etica Profesional'); 
• } 
• if ($car==2) 
• { 
• $materias=array('Fundamentos de Fisica','Analisis Matematico 1', 
• 'Ingles Tecnico I','Sistemas de Comunicaciones I 
• '); 
• } 
• if ($car==3) 
• { 
• $materias=array('Informatica I','Multimedia I','Bases de Datos'); 
• } 
19
• $xml="<?xml version="1.0"?>n"; 
• $xml.="<materias>n"; 
• for($f=0;$f<count($materias);$f++) 
• { 
• $xml.="<materia>".$materias[$f]."</materia>n"; 
• } 
• $xml.="</materias>n"; 
• header('Content-Type: text/xml'); 
• echo $xml; 
• ?> 
20
Ejemplos. 
21
• Contratiempos presentados al realizar la actividad. 
• Nos salían algunos errores al implementar el código. 
• Tiempo Aproximado de la realización. 
• 10 Horas 
22
Conclusión. 
23 
Uno de los beneficios de AJAX es que es una herramienta 
que viene a revolucionar la interacción con los sitios web.
24

Más contenido relacionado

La actualidad más candente

Introducción a Flask
Introducción a FlaskIntroducción a Flask
Introducción a Flask
Luis Cruz Campos
 
HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)
Iran Reyes Fleitas
 
Presentacion diseño web con jquery
Presentacion diseño web con jqueryPresentacion diseño web con jquery
Presentacion diseño web con jquery
Eutobar
 
Introducción a DJango
Introducción a DJangoIntroducción a DJango
Introducción a DJango
Luis Cruz Campos
 
De HTML a Express
De HTML a ExpressDe HTML a Express
De HTML a Express
Antonio Kobashikawa Carrasco
 
Manual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcomManual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcom
jo_ram
 
Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1
Ematiz Tecnología, S.L.
 
Creando un jwt token con node.js y express
Creando un jwt token con node.js y expressCreando un jwt token con node.js y express
Creando un jwt token con node.js y express
LUIS ANTONY MEZA ALANIA
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
Nicolás Bello Camilletti
 
Api De Google Calendar
Api De Google CalendarApi De Google Calendar
Api De Google Calendar
jvelizster
 
Los lenguajes de la web
Los lenguajes de la webLos lenguajes de la web
Los lenguajes de la web
Roberto Luis Bisbé
 
Gwt III - Avanzado
Gwt III - AvanzadoGwt III - Avanzado
Gwt III - Avanzado
Manuel Carrasco Moñino
 
Workshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsWorkshop 7: Single Page Applications
Workshop 7: Single Page Applications
Visual Engineering
 
Clase 10 formularios
Clase 10   formulariosClase 10   formularios
Clase 10 formularios
hydras_cs
 
Introducción a AngularJS
Introducción a AngularJSIntroducción a AngularJS
Introducción a AngularJS
Leopoldo Rojas Moguel
 
Creación de directivas personalizadas en AngularJS
Creación de directivas personalizadas en AngularJSCreación de directivas personalizadas en AngularJS
Creación de directivas personalizadas en AngularJS
Alvaro Yuste Torregrosa
 
HTML5 Web Workers
HTML5 Web WorkersHTML5 Web Workers
HTML5 Web Workers
Rodolfo Finochietti
 

La actualidad más candente (17)

Introducción a Flask
Introducción a FlaskIntroducción a Flask
Introducción a Flask
 
HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)
 
Presentacion diseño web con jquery
Presentacion diseño web con jqueryPresentacion diseño web con jquery
Presentacion diseño web con jquery
 
Introducción a DJango
Introducción a DJangoIntroducción a DJango
Introducción a DJango
 
De HTML a Express
De HTML a ExpressDe HTML a Express
De HTML a Express
 
Manual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcomManual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcom
 
Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1
 
Creando un jwt token con node.js y express
Creando un jwt token con node.js y expressCreando un jwt token con node.js y express
Creando un jwt token con node.js y express
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Api De Google Calendar
Api De Google CalendarApi De Google Calendar
Api De Google Calendar
 
Los lenguajes de la web
Los lenguajes de la webLos lenguajes de la web
Los lenguajes de la web
 
Gwt III - Avanzado
Gwt III - AvanzadoGwt III - Avanzado
Gwt III - Avanzado
 
Workshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsWorkshop 7: Single Page Applications
Workshop 7: Single Page Applications
 
Clase 10 formularios
Clase 10   formulariosClase 10   formularios
Clase 10 formularios
 
Introducción a AngularJS
Introducción a AngularJSIntroducción a AngularJS
Introducción a AngularJS
 
Creación de directivas personalizadas en AngularJS
Creación de directivas personalizadas en AngularJSCreación de directivas personalizadas en AngularJS
Creación de directivas personalizadas en AngularJS
 
HTML5 Web Workers
HTML5 Web WorkersHTML5 Web Workers
HTML5 Web Workers
 

Similar a Unidad 3 AJAX

Ajax
AjaxAjax
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
Mauro Gomez Mejia
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
Mauro Gomez Mejia
 
Phonegap
PhonegapPhonegap
Curso de HTML5
Curso de HTML5Curso de HTML5
Curso de HTML5
Carlos Azaustre
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajax
jubacalo
 
Ajax
AjaxAjax
Ajax
ousli07
 
JqueryMobile
JqueryMobile JqueryMobile
JqueryMobile
Barcelona GTUG
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5
Plain Concepts
 
DocumentacióN Del Sitio Web En Xml
DocumentacióN Del Sitio Web En XmlDocumentacióN Del Sitio Web En Xml
DocumentacióN Del Sitio Web En Xml
Antonio
 
Examen 2° grado primer bimestre
Examen 2° grado primer bimestreExamen 2° grado primer bimestre
Examen 2° grado primer bimestre
saraalonso1989
 
Jquery
JqueryJquery
Jquery
Oscar
 
Curso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCurso de Desarrollo Web de Platzi
Curso de Desarrollo Web de Platzi
Carlos Azaustre
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
Renny Batista
 
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverPrueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
David Gómez García
 
Como crear un blog 2 parte
Como crear un blog 2 parteComo crear un blog 2 parte
Como crear un blog 2 parte
daniescribano16
 
Intro Jquery
Intro JqueryIntro Jquery
Intro Jquery
Eddy Ernesto Rios
 
Jquery parte 1
Jquery parte 1Jquery parte 1
Jquery parte 1
Cesar Eduardo Suarez T
 
Dom html - java script
Dom   html - java scriptDom   html - java script
Dom html - java script
Daniel Grippo
 
JAVASCRIPT_2.ppt
JAVASCRIPT_2.pptJAVASCRIPT_2.ppt
JAVASCRIPT_2.ppt
audis66
 

Similar a Unidad 3 AJAX (20)

Ajax
AjaxAjax
Ajax
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 
Phonegap
PhonegapPhonegap
Phonegap
 
Curso de HTML5
Curso de HTML5Curso de HTML5
Curso de HTML5
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajax
 
Ajax
AjaxAjax
Ajax
 
JqueryMobile
JqueryMobile JqueryMobile
JqueryMobile
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5
 
DocumentacióN Del Sitio Web En Xml
DocumentacióN Del Sitio Web En XmlDocumentacióN Del Sitio Web En Xml
DocumentacióN Del Sitio Web En Xml
 
Examen 2° grado primer bimestre
Examen 2° grado primer bimestreExamen 2° grado primer bimestre
Examen 2° grado primer bimestre
 
Jquery
JqueryJquery
Jquery
 
Curso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCurso de Desarrollo Web de Platzi
Curso de Desarrollo Web de Platzi
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
 
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverPrueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
 
Como crear un blog 2 parte
Como crear un blog 2 parteComo crear un blog 2 parte
Como crear un blog 2 parte
 
Intro Jquery
Intro JqueryIntro Jquery
Intro Jquery
 
Jquery parte 1
Jquery parte 1Jquery parte 1
Jquery parte 1
 
Dom html - java script
Dom   html - java scriptDom   html - java script
Dom html - java script
 
JAVASCRIPT_2.ppt
JAVASCRIPT_2.pptJAVASCRIPT_2.ppt
JAVASCRIPT_2.ppt
 

Último

Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdfEstás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Ani Ann
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
JonathanCovena1
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
JorgeVillota6
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
Mónica Sánchez
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
DavidCamiloMosquera
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
israelsouza67
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
JimmyDeveloperWebAnd
 
Prueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infanciaPrueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infancia
LudmilaOrtega3
 
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdfEvaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
EfranMartnez8
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
eleandroth
 
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
EleNoguera
 
Eureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de CienciasEureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de Ciencias
arianet3011
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
josseanlo1581
 
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdfPOESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
karlavasquez49
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
JAVIER SOLIS NOYOLA
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
AlexDeLonghi
 
Mi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste BlancoMi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste Blanco
Ruth Noemí Soto Villegas
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
saradocente
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
JonathanCovena1
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
Jose Luis Jimenez Rodriguez
 

Último (20)

Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdfEstás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
 
Prueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infanciaPrueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infancia
 
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdfEvaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
 
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
 
Eureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de CienciasEureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de Ciencias
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
 
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdfPOESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
 
Mi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste BlancoMi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste Blanco
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
 

Unidad 3 AJAX

  • 1. UNIDAD 3 AJAX Ingeniería en Sistemas Computacionales Antonio Álvarez de la Rocha Campos Muñoz Iosdy Gisela 1
  • 2. Objetivo de la Actividad: Entender y exponer conceptos y ejemplos relacionados con AJAX. 2 •Agenda 13 - Mostrar un gif animado mientras se envían y reciben los datos del servidor. 14- Paginación con AJAX 15-Cargar un control de tipo select
  • 3. 3 • Hasta ahora mientras se actualiza la página mostramos un texto: 'Procesando...', es muy común utilizar un gif animado que represente tal operación.
  • 4. 4 • Haremos una serie de paginas que nos permitan enviar los datos cargados en un formulario al servidor en forma asíncrona y mostraremos un gif animado mientras dura el envió de datos.
  • 5. Código HTML 5 <html> <head> <title>Problema</title> <script src="funciones.js" language="JavaScript"></script> </head> <body> <form action="pagina1.php" method="post" id="formulario"> Nombre:<input type="text" name="nombre" id="nombre" size="20"><br> Comentarios:<br> <textarea name="comentarios" id="comentarios" rows="10" cols="50"></textarea><br> <input type="submit" value="Enviar" id="enviar"> <span id="resultados"></span><br> <a href="comentarios.txt">Ver resultados</a> </form> </body> </html>
  • 6. Código Java Script addEvent(window,'load',inicializarEventos,false); function inicializarEventos() { var ref=document.getElementById('formulario'); addEvent(ref,'submit',enviarDatos,false); } function enviarDatos(e) { if (window.event) window.event.returnValue=false; else if (e) e.preventDefault(); enviarFormulario(); } function retornarDatos() { var cad=''; var nom=document.getElementById('nombre').value; var com=document.getElementById('comentarios').value; cad='nombre='+encodeURIComponent(nom)+'&comentarios='+encodeURIComponent(com); return cad; } 6
  • 7. 7 var conexion1; function enviarFormulario() { conexion1=crearXMLHttpRequest(); conexion1.onreadystatechange = procesarEventos; conexion1.open('POST','pagina1.php', true); conexion1.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); conexion1.send(retornarDatos()); } function procesarEventos() { var resultados = document.getElementById("resultados"); if(conexion1.readyState == 4) { if (conexion1.status==200) resultados.innerHTML = 'Gracias.'; Else alert(conexion1.statusText); } else { resultados.innerHTML = '<img src="../cargando.gif">'; } } //*************************************** //Funciones comunes a todos los problemas //*************************************** function addEvent(elemento,nomevento,funcion,captura) { if (elemento.attachEvent) { elemento.attachEvent('on'+nomevento,funcion); return true; } Else if (elemento.addEventListener) {
  • 8. PHP • <?php • header('Content-Type: text/html; charset=ISO-8859-1'); $ar=fopen("comentarios.txt","a") or • die("No se pudo abrir el archivo"); fputs($ar,"Nombre:".$_REQUEST['nombre']."n"); fputs($ar,"Comentarios:".$_REQUEST['comentarios']."nn"); • fclose($ar); • sleep(1); • ?> 8
  • 9. Ejemplo de Gif Animado. 9
  • 10. 14. Paginación con AJAX 10 • Un lugar donde puede ayudar el uso de AJAX es en la paginación de datos mientras otro recurso en la página se está ejecutando. Confeccionaremos una página que muestre un video e inmediatamente en la parte inferior mostraremos los comentarios del video paginados. • Sin utilizar AJAX estamos obligados a recargar completamente la página lo que haría imposible ver el video y recorrer los comentarios en forma completa (considerando que solo parte de los comentarios están en la página)
  • 11. Ejemplo de paginación. 11 • Una pagina que muestre un video e inmediatamente en la parte inferior muestre los comentarios del video paginado. Actualizar los datos de forma asíncrona.
  • 12. 12 • <html> • <head> • <title>Problema</title> • <script src="funciones.js" language="JavaScript"></script> </head> • <body> • <object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/60og9gwKh1o"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/60og9gwKh1o" type="application/x-shockwave-flash" • wmode="transparent" width="425" height="350"></embed></object> • <br> • <div id="detalles"> • </div> • </body> • </html>
  • 13. • addEvent(window,'load',inicializarEventos,false); function inicializarEventos() { cargarPagina('pagina2.php'); } function presionEnlace(e) { if (window.event) { window.event.returnValue=false; var url=window.event.srcElement.getAttribute('href'); cargarPagina(url); } else if (e) { e.preventDefault(); var url=e.target.getAttribute('href'); cargarPagina(url); } } 13
  • 14. Código PHP • var conexion1; • function cargarPagina(url) • { • if(url=='') • { return; • } • conexion1=crearXMLHttpRequest(); conexion1.onreadystatechange = procesarEventos; conexion1.open("GET", url, true); conexion1.send(null); • } 14
  • 16. 15.Cargar un control de tipo select 16 • Confeccionaremos un problema que contenga dos controles de tipo select. En el primero almacenaremos una lista de carreras de estudio ("Analista de Sistemas", "Telecomunicaciones" y "WebMaster") • Cuando se seleccione una carrera enviaremos una petición al servidor para que retorne todas las materias que tiene esa carrera y procederemos a la carga del segundo select.
  • 17. Código HTML • <script src="funciones.js" language="JavaScript"></script> • </head> • <body> • <h1>Prueba de cargar un control de tipo select recuperando datos del servidor • mediante AJAX</h1> • Seleccione la carrera: • <select id="carreras" name="carreras"> • <option value="0">Seleccionar....</option> • <option value="1">Analista de sistemas</option> • <option value="2">Telecomunicaciones</option> • <option value="3">WebMaster</option> • </select><span id="espera"></span><br> • Materias de la carrera: • <select id="materias" name="materias"> • </select><br> • </body> • </html> 17
  • 18. JavaScript • addEvent(window,'load',inicializarEventos,false); • function inicializarEventos() • { • var select1=document.getElementById('carreras'); • addEvent(select1,'change',mostrarMaterias,false); • } • var conexion1; • function mostrarMaterias(e) • { • var codigo=document.getElementById('carreras').value; • if (codigo!=0) • { • conexion1=crearXMLHttpRequest(); • conexion1.onreadystatechange = procesarEventos; • conexion1.open('GET','pagina1.php?cod='+codigo, true); • conexion1.send(null); • } • else • { • var select2=document.getElementById('materias'); • select2.options.length=0; • } • } 18
  • 19. PHP • <?php • $car=$_REQUEST['cod']; • if ($car==1) • { • $materias=array('Programacion I','Analisis Matematico', • 'Estructura de las Organizaciones','Etica Profesional'); • } • if ($car==2) • { • $materias=array('Fundamentos de Fisica','Analisis Matematico 1', • 'Ingles Tecnico I','Sistemas de Comunicaciones I • '); • } • if ($car==3) • { • $materias=array('Informatica I','Multimedia I','Bases de Datos'); • } 19
  • 20. • $xml="<?xml version="1.0"?>n"; • $xml.="<materias>n"; • for($f=0;$f<count($materias);$f++) • { • $xml.="<materia>".$materias[$f]."</materia>n"; • } • $xml.="</materias>n"; • header('Content-Type: text/xml'); • echo $xml; • ?> 20
  • 22. • Contratiempos presentados al realizar la actividad. • Nos salían algunos errores al implementar el código. • Tiempo Aproximado de la realización. • 10 Horas 22
  • 23. Conclusión. 23 Uno de los beneficios de AJAX es que es una herramienta que viene a revolucionar la interacción con los sitios web.
  • 24. 24