SlideShare una empresa de Scribd logo
1 de 24
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

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
 

Destacado

Vocabulary first power point
Vocabulary first power pointVocabulary first power point
Vocabulary first power pointanglescastelltort
 
¿Es posible lograr aprendizajes significativos en la modalidad virtual?
¿Es posible lograr aprendizajes significativos en la modalidad virtual?¿Es posible lograr aprendizajes significativos en la modalidad virtual?
¿Es posible lograr aprendizajes significativos en la modalidad virtual?CRISEL BY AEFOL
 
Evolución y retos de la educación virtual
Evolución y retos de la educación virtualEvolución y retos de la educación virtual
Evolución y retos de la educación virtualrcmon99
 
C:\Fakepath\Presentacion Criss
C:\Fakepath\Presentacion CrissC:\Fakepath\Presentacion Criss
C:\Fakepath\Presentacion Crisszuritam
 
Tendencias en Diseño Web (2013)
Tendencias en Diseño Web (2013)Tendencias en Diseño Web (2013)
Tendencias en Diseño Web (2013)Matías Raby
 
Itap pla-programa de actividades-008 (1)
Itap pla-programa de actividades-008 (1)Itap pla-programa de actividades-008 (1)
Itap pla-programa de actividades-008 (1)Yare LoZada
 
Highsmith dissertation defense
Highsmith dissertation defenseHighsmith dissertation defense
Highsmith dissertation defenseshelby
 

Destacado (20)

Vocabulary first power point
Vocabulary first power pointVocabulary first power point
Vocabulary first power point
 
Informatica 2
Informatica 2Informatica 2
Informatica 2
 
140317
140317140317
140317
 
140407
140407140407
140407
 
Alcance
AlcanceAlcance
Alcance
 
¿Es posible lograr aprendizajes significativos en la modalidad virtual?
¿Es posible lograr aprendizajes significativos en la modalidad virtual?¿Es posible lograr aprendizajes significativos en la modalidad virtual?
¿Es posible lograr aprendizajes significativos en la modalidad virtual?
 
Sound management by lt ns wickramasinghe b sc e & e
Sound management by lt ns wickramasinghe  b sc e & eSound management by lt ns wickramasinghe  b sc e & e
Sound management by lt ns wickramasinghe b sc e & e
 
Evolución y retos de la educación virtual
Evolución y retos de la educación virtualEvolución y retos de la educación virtual
Evolución y retos de la educación virtual
 
C:\Fakepath\Presentacion Criss
C:\Fakepath\Presentacion CrissC:\Fakepath\Presentacion Criss
C:\Fakepath\Presentacion Criss
 
Dn12 u3 a22_rgo
Dn12 u3 a22_rgoDn12 u3 a22_rgo
Dn12 u3 a22_rgo
 
Trabajo de computación acerca de W3C
Trabajo de computación acerca de W3CTrabajo de computación acerca de W3C
Trabajo de computación acerca de W3C
 
Bio Statistics Services
Bio Statistics ServicesBio Statistics Services
Bio Statistics Services
 
Tendencias en Diseño Web (2013)
Tendencias en Diseño Web (2013)Tendencias en Diseño Web (2013)
Tendencias en Diseño Web (2013)
 
Docencia Online
Docencia OnlineDocencia Online
Docencia Online
 
Itap pla-programa de actividades-008 (1)
Itap pla-programa de actividades-008 (1)Itap pla-programa de actividades-008 (1)
Itap pla-programa de actividades-008 (1)
 
Video Conferencias
Video Conferencias Video Conferencias
Video Conferencias
 
Binder1
Binder1Binder1
Binder1
 
Html
HtmlHtml
Html
 
Highsmith dissertation defense
Highsmith dissertation defenseHighsmith dissertation defense
Highsmith dissertation defense
 
TAREA 4
TAREA 4TAREA 4
TAREA 4
 

Similar a Unidad3ajax

Similar a Unidad3ajax (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

Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 

Último (20)

Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 

Unidad3ajax

  • 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