SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
Manual de ajax en
español By
“ajaxman”
Usando ajax mediante el método
get para realizar peticiones de
manera transparente

Ajax y el objeto XMLHttpRequest

Escrito por Javier
16/07/2007
Manual de ajax en español By “ajaxman”                    2007



Ajax.

El 18 de Febrero de 2005, Jesse James Garrett, director de Estrategia
para la experiencia del usuario y fundador de Adaptive Path, publico un
artículo al cual se refería a ajax como:

Ajax: Un Nuevo acercamiento a las Aplicaciones Web

Exactamente se refería a una nueva forma de ver las aplicaciones web,
ya no como sitios dinámicos, si no además como sitios interactivos,
como la posibilidad de cargar paginas dinámicamente, sin tener que
recargar toda la pagina (como un iframe), que es uno de los logros
fundamentales de ajax.

Algo que debe quedar claro es que ajax no es una tecnología, un
modulo de apache, un script, una extensión, si no es más bien una
mezcla de tecnologías, que permiten crear aplicaciones web, increíbles
y dinámicas.




                     Modelo Clásico Modelo Ajax
Manual de ajax en español By “ajaxman”                  2007



Ajax viene de la palabra Asynchronous JavaScript And XML, aunque
también se podría referirse uno a este término como AJAH, AJAP, AJAJ,
AJAA, Etc.

Traduciéndolo al español podremos decir que se trata de una mezcla
de tecnologías:

      Uso de estándares XHTML y CSS
      Uso del Document Object Model(DOM)
      Interacción de datos usando XML, XSLT, HTML, hasta JS y Paginas
       Dinámicas (ASP, PHP, CGI, PYTHON, NET, Etc.).
      Y lo indispensable JAVASCRIPT, para juntar y organizar todo.

Ahora bien vayamos por partes.

¿Cómo demonios se usa ajax?

Para poder empezar a escribir páginas web con ajax, deberías cumplir
con algunos requisitos básicos:

      Saber usar HTML
      CSS (que no es tan indispensable pero necesario)
      Javascript, básico
      y de preferencia el saber manejar mínimamente algún lenguaje
       de programación web como PHP, .NET, PYTHON, Etc.

Veremos a continuación como se crea una aplicación usando el
modelo Ajax.

Primero necesitaremos hacer una página web que puede estar en un
servidor local o remoto, esta la haremos en html.

Pagina_dinamica.html

_________________________________________________________________

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>

<head>
<title>Mi primer Script con Ajax</title>
<script language=”JavaScript” type=”text/javascript”>
/*<![CDATA[*/
function _Ajax()
{
Manual de ajax en español By “ajaxman”                        2007



}
/*]]>*/
</script>
</head>
<body>
<form action=”javascript:_Ajax();” method=”get”>
<input name=”nombre” id=”nombre” type=”text”/>
<input type=”button” name=”aceptar” value=”Aceptar”
onclick=”_Ajax();”/>
</form>
<div id=”resultado”>
</div>
</body>
</html>

____________________________________________________________________

Ahora vamos por partes, primero necesitamos agregarle a nuestra
página web, un formulario con un quot;actionquot; a quot;javascriptquot;, esto es
necesario porque, cuando alguien le da quot;enterquot; y es el ultimo o único
campo del formulario este se envía a la pagina que este, indicada en el
action, por eso si, el action es un javascript, el formulario se enviara a la
función.

<form action=”javascript:_Ajax();” method=”get”>

Después, creamos un campo de tipo texto, con un id, recordemos que
para poder implementar ajax, hay que saber identificar, la estructura
básica del DOM.

<input name=”nombre” id=”nombre” type=”text”/>

Y por ultimo un input, de tipo botón.

<input type=”button” name=”aceptar” value=”Aceptar”
onclick=”_Ajax();”/>

Al cual, no es necesario agregarle un id, y le asignamos, un evento
quot;onclickquot;, con el cual llamamos a una función, en este caso no es
necesario agregarle parámetros, pues no los necesita.

Recordemos que para el nombre de la función no es necesario que se
llame _ajax, se puede llamar de cualquier forma, sin embargo es mejor
nombrarla, con algún nombre que caracterice su funcionamiento.

Generamos la función que de momento, no tendrá mas contenido que
este:
Manual de ajax en español By “ajaxman”                  2007



function _Ajax()
{

}

Para poder hacer peticiones remotas, es necesario del uso de un
objeto, el XMLHttpRequest, que a pesar de ser un estándar no está bien
implementado en algunos navegadores como, Internet Explorer, por ello
es necesario hacer una función que genere correctamente este objeto.

function XMLHttp(){
var Object;
if (typeof XMLHttpRequest == “undefined” )
{
if(navigator.userAgent.indexOf(”MSIE 5″) >= 0)
{ Object= new ActiveXObject(”Microsoft.XMLHTTP”);}
else
{ Object=new ActiveXObject(”Msxml2.XMLHTTP”);}
}
else
{ Object=new XMLHttpRequest();}
return Object;
}

y después lo instanciamos, de la siguiente manera,

var ajax=XMLHttp();

Pero ¿Que quiere decir el código que acabamos de escribir?.

Vayamos por partes, el corazón de una petición remota, en este caso
de ajax, se utiliza el objeto XMLHttpRequest, sin embargo, este objeto
solo está definido en navegadores basados en netscape, como Mozilla,
Firefox, Camino, Minimo(Navegador de Mozilla para Celular).

Y en navegadores, con motor de Internet Explorer, no está
implementado este objeto nativamente, por ello es necesario crear una
función que revise el tipo de navegador, y en base a ello nos dé el
objeto correcto, de lo contrario, crear una nueva instancia de un objeto
XMLHttpRequest sería tan fácil como:

var ajax=new XMLHttpRequest();

Ahora veamos línea por línea lo que realiza nuestro script.

function XMLHttp(){ //Con esto creamos la función XMLHttp(no es
necesario que se llame así)
Manual de ajax en español By “ajaxman”                    2007



var Object; //Agregamos la variable llamada objeto
if (typeof XMLHttpRequest == “undefined” ) //revisamos si no esta
definido el objeto nativamente(navegadores tipo mozilla)

{if(navigator.userAgent.indexOf(”MSIE 5″) >= 0) //Ahora revisamos si el
motor es mayor o igual a MSIE 5.0 (mayor que microsoft internet explorer
5.0)

{ Object= new ActiveXObject(”Microsoft.XMLHTTP”);}// Si es así creamos
un control activeX apartir de un objeto
ActiveXObject(”Microsoft.XMLHTTP”)

else //si no , o si es menor a MSIE 5.0 creamos otro control activeX

{ Object=new ActiveXObject(”Msxml2.XMLHTTP”);} // apartir de un
objeto ActiveXObject(”Msxml2.XMLHTTP”)

}
else // en cambio si el objeto estaba definido nativamente, solo lo
instanciamos

{ Object=new XMLHttpRequest();} //Instancia del objeto XMLHttpRequest

return Object; // Y retornamos el objeto creado

}

Y después solo lo instanciamos una variable apartir de la función como
mencione al final de el código de la función.

También podemos definirlo mediante operadores ternarios, y minimizar
el código el cual quedaría de la siguiente forma:

if ( typeof XMLHttpRequest == “undefined” )
XMLHttpRequest = function(){
return new ActiveXObject(
navigator.userAgent.indexOf(”MSIE 5″) >= 0 ?
“Microsoft.XMLHTTP” : “Msxml2.XMLHTTP”
);
};

y para instanciarlo seria de la siguiente manera:

var ajax=new XMLHttpRequest();

Ahora creamos la función que se encargara de hacer la petición a la
otra página web:
Manual de ajax en español By “ajaxman”                 2007



function _Ajax()
{
var nombre=document.getElementById(’nombre’).value;
ajax.open(”GET”,”datos_get.php?nombre=”+nombre,true);
ajax.onreadystatechange=function(){
if(ajax.readyState==4)
{
var respuesta=ajax.responseText;
document.getElementById(’resultado’).innerHTML=respuesta;
}
}
ajax.send(null);
}

Veamos los puntos importantes de la función anterior:

El nombre de la función:

function _Ajax()

Obtenemos el valor del campo, el cual esta referenciado por un id, esta
es una de las formas mas rápidas para acceder a un elemento en
especifico, el cual puede ser un div, una celda, un campo de texto,
etc…;

var nombre=document.getElementById(’nombre’).value;

Nota: Esta forma de acceder al DOM, funciona bien en la mayoría de
navegadores, aunque en Navegadores con motor basado en Internet
Explorer, se puede utilizar una función alternativa.

var nombre=document.all(’nombre’).value;

Esto sucede porque en Internet Explorer 6 aun hacen referencia al DOM
de nivel 1 y con el metodo getElementById se hace referencia la DOM
de nivel 2.

Ahora vayamos a ver la siguiente línea de código:

ajax.open(”GET”,”datos_get.php?nombre=”+nombre,true);

El objeto ajax tiene una serie de métodos, que harán posible que
nuestra aplicación funcione, el primer método se llama open y abre una
conexión entre nuestra página web y otra pagina(en este caso, la
pagina se llama datos_get.php), este método usa 3 parámetros,

   1. Método de envió de datos, GET o POST
Manual de ajax en español By “ajaxman”                      2007



   2. El segundo parámetro es la pagina a la cual deseamos
      conectarnos, esta puede o no llevar datos, por ejemplo si usamos
      un método get, puede ser necesario envía variables, por este
      medio, si es por post, no es necesario.
   3. Y por ultimo un valor booleano para saber si al conexión será
      Asíncrona o síncrona, y se define con las palabras reservadas o
      valores, true o false.

Al realizar una petición ajax es necesario revisar el estado en el que está
en objeto, esto se refiere a , preguntar si la pagina que pedimos se
cargo, si ajax aun está enviando datos, esperado respuesta, o si la
pagina devuelta existe, entre otros.

En este caso debemos de referirnos al método onreadystatechange, de
la siguiente forma:

ajax.onreadystatechange=function(){alert(”revisando el estado del
objeto ajax”);}

Con este método nos referimos a una función la cual revisara el estado
del objeto ajax, el cual consta de 5 estados.

   1.   No inicializado
   2.   Conexión establecida
   3.   Recibiendo respuesta
   4.   Procesando respuesta
   5.   Finalizado

Se pude comprobar estado por estado la petición, pero para nuestro
ejemplo no es necesario, veamos la función a detalle:

ajax.onreadystatechange=function(){
if(ajax.readyState==4)
{
var respuesta=ajax.responseText;
document.getElementById(’resultado’).innerHTML=respuesta;
}
}

Con el método onreadystatechange generamos una función que
comprueba si el estado es igual a 4, mediante el metodo
ajax.readyState, (si se ha finalizado la petición), y posteriormente
creamos una variable, llamada respuesta, la cual contiene la pagina
solicitada, esta respuesta puede venir de dos formas.

ajax.responseText;
Manual de ajax en español By “ajaxman”                  2007



ajax.responseXML;

El primero se refiere a que la respuesta será procesada como texto, por
ejemplo si pedimos una pagina html, o php, asp, etc se puede utilizar
este tipo de respuesta, sin embargo, si la pagina recibida es una XML es
necesario usar la segunda opción.

La línea de código que sigue, simplemente le dice a javascript que
inserte la respuesta en un elemento de la pagina web referenciado por
algún id, puede ser una tabla, un textarea, una celda, un div, etc.

document.getElementById(’resultado’).innerHTML=respuesta;

Esta inserción se realiza mediante el método innerHTML, el cual también
trabaja de dos formas.

document.getElementById(’resultado’).innerHTML=respuesta;

document.getElementById(’resultado’).innerText=respuesta;

Con la primera opción, la pagina que, hemos solicitado, se insertara
como HTML, esto es si hemos recibido formularios, imágenes, etc.; Si lo
que recibimos es solo texto , es recomendable usar innerText.

El ultimo método usado es.

ajax.send(null);

Este método permite enviar variables, cuando utilizamos el método post
para enviar datos, si en cambio se usa el método get, simplemente se
concatenan la variables al nombre de la pagina (como lo vimos en el
método ajax.open) .

En este caso enviaremos, null, ya que no es necesario enviar más datos.

Ahora creamos la página datos_get.php

<?php

echo $_GET[’nombre’] ;

?>

_______________________________

y listo, ya tenemos nuestra primera aplicación con ajax, a la vez que
aprendimos de donde salió todo este rollo de ajax.
Manual de ajax en español By “ajaxman”                   2007




Puede encontrar este y otros artículos además de más información en la
página web de www.Ajaxman.net

Contenu connexe

Tendances

Manual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcomManual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcomjo_ram
 
Introducción a JQuery
Introducción a JQueryIntroducción a JQuery
Introducción a JQueryContinuum
 
jQuery
jQueryjQuery
jQueryCoya14
 
Charla Jquery
Charla JqueryCharla Jquery
Charla Jquerykaolong
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajaxjubacalo
 
Tutorial de persistencia de java
Tutorial de persistencia de javaTutorial de persistencia de java
Tutorial de persistencia de javaCarlos Anrango
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSPjubacalo
 
Base de datos desde vb 6.0
Base de datos desde vb 6.0Base de datos desde vb 6.0
Base de datos desde vb 6.0WendyMendez30
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundojubacalo
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2Steven Gomez
 

Tendances (20)

Ajax Huancayo
Ajax HuancayoAjax Huancayo
Ajax Huancayo
 
Manual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcomManual de jquery en pdf desarrollowebcom
Manual de jquery en pdf desarrollowebcom
 
Introducción a JQuery
Introducción a JQueryIntroducción a JQuery
Introducción a JQuery
 
Introduccion a Jquery
Introduccion a JqueryIntroduccion a Jquery
Introduccion a Jquery
 
Ajax
AjaxAjax
Ajax
 
jQuery
jQueryjQuery
jQuery
 
Charla Jquery
Charla JqueryCharla Jquery
Charla Jquery
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajax
 
Guia indexeddb
Guia indexeddbGuia indexeddb
Guia indexeddb
 
Guia indexeddb
Guia indexeddbGuia indexeddb
Guia indexeddb
 
Tutorial de persistencia de java
Tutorial de persistencia de javaTutorial de persistencia de java
Tutorial de persistencia de java
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSP
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
 
Jquery parte 1
Jquery parte 1Jquery parte 1
Jquery parte 1
 
Curso Jsp
Curso JspCurso Jsp
Curso Jsp
 
Base de datos desde vb 6.0
Base de datos desde vb 6.0Base de datos desde vb 6.0
Base de datos desde vb 6.0
 
Carreno programacion
Carreno  programacionCarreno  programacion
Carreno programacion
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundo
 
Codigos para html
Codigos para htmlCodigos para html
Codigos para html
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 

En vedette

Introduccion a DOM y AJAX - Javier Oliver Fulguera
Introduccion a DOM y AJAX  -  Javier Oliver FulgueraIntroduccion a DOM y AJAX  -  Javier Oliver Fulguera
Introduccion a DOM y AJAX - Javier Oliver FulgueraJavier Oliver Fulguera
 
Introducción a los lenguajes de programación de la plataforma Web 2.0: Ajax
Introducción a los lenguajes de programación de la plataforma Web 2.0: AjaxIntroducción a los lenguajes de programación de la plataforma Web 2.0: Ajax
Introducción a los lenguajes de programación de la plataforma Web 2.0: AjaxDavid Arango
 

En vedette (7)

Manual Ajax con jquery
Manual Ajax con jqueryManual Ajax con jquery
Manual Ajax con jquery
 
introduccion a Ajax
introduccion a Ajaxintroduccion a Ajax
introduccion a Ajax
 
AJAX EN CURSO PHP
AJAX EN CURSO PHPAJAX EN CURSO PHP
AJAX EN CURSO PHP
 
Introduccion a DOM y AJAX - Javier Oliver Fulguera
Introduccion a DOM y AJAX  -  Javier Oliver FulgueraIntroduccion a DOM y AJAX  -  Javier Oliver Fulguera
Introduccion a DOM y AJAX - Javier Oliver Fulguera
 
Introducción a los lenguajes de programación de la plataforma Web 2.0: Ajax
Introducción a los lenguajes de programación de la plataforma Web 2.0: AjaxIntroducción a los lenguajes de programación de la plataforma Web 2.0: Ajax
Introducción a los lenguajes de programación de la plataforma Web 2.0: Ajax
 
AJAX
AJAXAJAX
AJAX
 
JavaScript desde Cero
JavaScript desde CeroJavaScript desde Cero
JavaScript desde Cero
 

Similaire à Manual De Ajax En Espanol

Ajax
AjaxAjax
Ajaxutpl
 
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control ToolkitDesarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkitpabloesp
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncronaLaura Folgado Galache
 
Todo Javascript para canibales
Todo Javascript para canibalesTodo Javascript para canibales
Todo Javascript para canibalesbriant pati
 
Javascript de Canibales
Javascript de CanibalesJavascript de Canibales
Javascript de Canibalesbriant pati
 
Java Script de canibaless
Java Script de canibalessJava Script de canibaless
Java Script de canibalessbriant pati
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js IntroduccionMayer Horna
 
Que es AJAX
Que es AJAXQue es AJAX
Que es AJAXITSTB
 
SALUDOS EN INGLES
SALUDOS EN INGLESSALUDOS EN INGLES
SALUDOS EN INGLESludiviarosa
 

Similaire à Manual De Ajax En Espanol (20)

Presentacion ajax
Presentacion   ajaxPresentacion   ajax
Presentacion ajax
 
Ajax
AjaxAjax
Ajax
 
Ajax
AjaxAjax
Ajax
 
Inicios Ajax
Inicios AjaxInicios Ajax
Inicios Ajax
 
Ajax
AjaxAjax
Ajax
 
Expo
ExpoExpo
Expo
 
Ajax
AjaxAjax
Ajax
 
Capitulo 4.7 prog iii
Capitulo 4.7 prog iiiCapitulo 4.7 prog iii
Capitulo 4.7 prog iii
 
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control ToolkitDesarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona
 
Todo Javascript para canibales
Todo Javascript para canibalesTodo Javascript para canibales
Todo Javascript para canibales
 
Javascript de Canibales
Javascript de CanibalesJavascript de Canibales
Javascript de Canibales
 
Java Script de canibaless
Java Script de canibalessJava Script de canibaless
Java Script de canibaless
 
Ajax
AjaxAjax
Ajax
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js Introduccion
 
ASP.NET MVC - AJAX
ASP.NET MVC - AJAXASP.NET MVC - AJAX
ASP.NET MVC - AJAX
 
Que es AJAX
Que es AJAXQue es AJAX
Que es AJAX
 
Asp
AspAsp
Asp
 
SALUDOS EN INGLES
SALUDOS EN INGLESSALUDOS EN INGLES
SALUDOS EN INGLES
 
PHP+Ajax
PHP+AjaxPHP+Ajax
PHP+Ajax
 

Plus de Rommel Gutierrez Roa (9)

ISummit Seguridad en Redes Inalambricas
ISummit Seguridad en Redes InalambricasISummit Seguridad en Redes Inalambricas
ISummit Seguridad en Redes Inalambricas
 
Open Innovation
Open InnovationOpen Innovation
Open Innovation
 
Pruebas Para Proporciones (Rommel Gutierrez)
Pruebas Para Proporciones (Rommel Gutierrez)Pruebas Para Proporciones (Rommel Gutierrez)
Pruebas Para Proporciones (Rommel Gutierrez)
 
Programacion Php
Programacion PhpProgramacion Php
Programacion Php
 
Algebra
AlgebraAlgebra
Algebra
 
Algebra Lineal
Algebra LinealAlgebra Lineal
Algebra Lineal
 
Chile Curriculo Matematicas Tics
Chile Curriculo Matematicas TicsChile Curriculo Matematicas Tics
Chile Curriculo Matematicas Tics
 
Programacion en PHP
Programacion en PHPProgramacion en PHP
Programacion en PHP
 
Formulario De Integrales
Formulario De IntegralesFormulario De Integrales
Formulario De Integrales
 

Dernier

Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 

Dernier (20)

Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 

Manual De Ajax En Espanol

  • 1. Manual de ajax en español By “ajaxman” Usando ajax mediante el método get para realizar peticiones de manera transparente Ajax y el objeto XMLHttpRequest Escrito por Javier 16/07/2007
  • 2. Manual de ajax en español By “ajaxman” 2007 Ajax. El 18 de Febrero de 2005, Jesse James Garrett, director de Estrategia para la experiencia del usuario y fundador de Adaptive Path, publico un artículo al cual se refería a ajax como: Ajax: Un Nuevo acercamiento a las Aplicaciones Web Exactamente se refería a una nueva forma de ver las aplicaciones web, ya no como sitios dinámicos, si no además como sitios interactivos, como la posibilidad de cargar paginas dinámicamente, sin tener que recargar toda la pagina (como un iframe), que es uno de los logros fundamentales de ajax. Algo que debe quedar claro es que ajax no es una tecnología, un modulo de apache, un script, una extensión, si no es más bien una mezcla de tecnologías, que permiten crear aplicaciones web, increíbles y dinámicas. Modelo Clásico Modelo Ajax
  • 3. Manual de ajax en español By “ajaxman” 2007 Ajax viene de la palabra Asynchronous JavaScript And XML, aunque también se podría referirse uno a este término como AJAH, AJAP, AJAJ, AJAA, Etc. Traduciéndolo al español podremos decir que se trata de una mezcla de tecnologías:  Uso de estándares XHTML y CSS  Uso del Document Object Model(DOM)  Interacción de datos usando XML, XSLT, HTML, hasta JS y Paginas Dinámicas (ASP, PHP, CGI, PYTHON, NET, Etc.).  Y lo indispensable JAVASCRIPT, para juntar y organizar todo. Ahora bien vayamos por partes. ¿Cómo demonios se usa ajax? Para poder empezar a escribir páginas web con ajax, deberías cumplir con algunos requisitos básicos:  Saber usar HTML  CSS (que no es tan indispensable pero necesario)  Javascript, básico  y de preferencia el saber manejar mínimamente algún lenguaje de programación web como PHP, .NET, PYTHON, Etc. Veremos a continuación como se crea una aplicación usando el modelo Ajax. Primero necesitaremos hacer una página web que puede estar en un servidor local o remoto, esta la haremos en html. Pagina_dinamica.html _________________________________________________________________ <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml”> <head> <title>Mi primer Script con Ajax</title> <script language=”JavaScript” type=”text/javascript”> /*<![CDATA[*/ function _Ajax() {
  • 4. Manual de ajax en español By “ajaxman” 2007 } /*]]>*/ </script> </head> <body> <form action=”javascript:_Ajax();” method=”get”> <input name=”nombre” id=”nombre” type=”text”/> <input type=”button” name=”aceptar” value=”Aceptar” onclick=”_Ajax();”/> </form> <div id=”resultado”> </div> </body> </html> ____________________________________________________________________ Ahora vamos por partes, primero necesitamos agregarle a nuestra página web, un formulario con un quot;actionquot; a quot;javascriptquot;, esto es necesario porque, cuando alguien le da quot;enterquot; y es el ultimo o único campo del formulario este se envía a la pagina que este, indicada en el action, por eso si, el action es un javascript, el formulario se enviara a la función. <form action=”javascript:_Ajax();” method=”get”> Después, creamos un campo de tipo texto, con un id, recordemos que para poder implementar ajax, hay que saber identificar, la estructura básica del DOM. <input name=”nombre” id=”nombre” type=”text”/> Y por ultimo un input, de tipo botón. <input type=”button” name=”aceptar” value=”Aceptar” onclick=”_Ajax();”/> Al cual, no es necesario agregarle un id, y le asignamos, un evento quot;onclickquot;, con el cual llamamos a una función, en este caso no es necesario agregarle parámetros, pues no los necesita. Recordemos que para el nombre de la función no es necesario que se llame _ajax, se puede llamar de cualquier forma, sin embargo es mejor nombrarla, con algún nombre que caracterice su funcionamiento. Generamos la función que de momento, no tendrá mas contenido que este:
  • 5. Manual de ajax en español By “ajaxman” 2007 function _Ajax() { } Para poder hacer peticiones remotas, es necesario del uso de un objeto, el XMLHttpRequest, que a pesar de ser un estándar no está bien implementado en algunos navegadores como, Internet Explorer, por ello es necesario hacer una función que genere correctamente este objeto. function XMLHttp(){ var Object; if (typeof XMLHttpRequest == “undefined” ) { if(navigator.userAgent.indexOf(”MSIE 5″) >= 0) { Object= new ActiveXObject(”Microsoft.XMLHTTP”);} else { Object=new ActiveXObject(”Msxml2.XMLHTTP”);} } else { Object=new XMLHttpRequest();} return Object; } y después lo instanciamos, de la siguiente manera, var ajax=XMLHttp(); Pero ¿Que quiere decir el código que acabamos de escribir?. Vayamos por partes, el corazón de una petición remota, en este caso de ajax, se utiliza el objeto XMLHttpRequest, sin embargo, este objeto solo está definido en navegadores basados en netscape, como Mozilla, Firefox, Camino, Minimo(Navegador de Mozilla para Celular). Y en navegadores, con motor de Internet Explorer, no está implementado este objeto nativamente, por ello es necesario crear una función que revise el tipo de navegador, y en base a ello nos dé el objeto correcto, de lo contrario, crear una nueva instancia de un objeto XMLHttpRequest sería tan fácil como: var ajax=new XMLHttpRequest(); Ahora veamos línea por línea lo que realiza nuestro script. function XMLHttp(){ //Con esto creamos la función XMLHttp(no es necesario que se llame así)
  • 6. Manual de ajax en español By “ajaxman” 2007 var Object; //Agregamos la variable llamada objeto if (typeof XMLHttpRequest == “undefined” ) //revisamos si no esta definido el objeto nativamente(navegadores tipo mozilla) {if(navigator.userAgent.indexOf(”MSIE 5″) >= 0) //Ahora revisamos si el motor es mayor o igual a MSIE 5.0 (mayor que microsoft internet explorer 5.0) { Object= new ActiveXObject(”Microsoft.XMLHTTP”);}// Si es así creamos un control activeX apartir de un objeto ActiveXObject(”Microsoft.XMLHTTP”) else //si no , o si es menor a MSIE 5.0 creamos otro control activeX { Object=new ActiveXObject(”Msxml2.XMLHTTP”);} // apartir de un objeto ActiveXObject(”Msxml2.XMLHTTP”) } else // en cambio si el objeto estaba definido nativamente, solo lo instanciamos { Object=new XMLHttpRequest();} //Instancia del objeto XMLHttpRequest return Object; // Y retornamos el objeto creado } Y después solo lo instanciamos una variable apartir de la función como mencione al final de el código de la función. También podemos definirlo mediante operadores ternarios, y minimizar el código el cual quedaría de la siguiente forma: if ( typeof XMLHttpRequest == “undefined” ) XMLHttpRequest = function(){ return new ActiveXObject( navigator.userAgent.indexOf(”MSIE 5″) >= 0 ? “Microsoft.XMLHTTP” : “Msxml2.XMLHTTP” ); }; y para instanciarlo seria de la siguiente manera: var ajax=new XMLHttpRequest(); Ahora creamos la función que se encargara de hacer la petición a la otra página web:
  • 7. Manual de ajax en español By “ajaxman” 2007 function _Ajax() { var nombre=document.getElementById(’nombre’).value; ajax.open(”GET”,”datos_get.php?nombre=”+nombre,true); ajax.onreadystatechange=function(){ if(ajax.readyState==4) { var respuesta=ajax.responseText; document.getElementById(’resultado’).innerHTML=respuesta; } } ajax.send(null); } Veamos los puntos importantes de la función anterior: El nombre de la función: function _Ajax() Obtenemos el valor del campo, el cual esta referenciado por un id, esta es una de las formas mas rápidas para acceder a un elemento en especifico, el cual puede ser un div, una celda, un campo de texto, etc…; var nombre=document.getElementById(’nombre’).value; Nota: Esta forma de acceder al DOM, funciona bien en la mayoría de navegadores, aunque en Navegadores con motor basado en Internet Explorer, se puede utilizar una función alternativa. var nombre=document.all(’nombre’).value; Esto sucede porque en Internet Explorer 6 aun hacen referencia al DOM de nivel 1 y con el metodo getElementById se hace referencia la DOM de nivel 2. Ahora vayamos a ver la siguiente línea de código: ajax.open(”GET”,”datos_get.php?nombre=”+nombre,true); El objeto ajax tiene una serie de métodos, que harán posible que nuestra aplicación funcione, el primer método se llama open y abre una conexión entre nuestra página web y otra pagina(en este caso, la pagina se llama datos_get.php), este método usa 3 parámetros, 1. Método de envió de datos, GET o POST
  • 8. Manual de ajax en español By “ajaxman” 2007 2. El segundo parámetro es la pagina a la cual deseamos conectarnos, esta puede o no llevar datos, por ejemplo si usamos un método get, puede ser necesario envía variables, por este medio, si es por post, no es necesario. 3. Y por ultimo un valor booleano para saber si al conexión será Asíncrona o síncrona, y se define con las palabras reservadas o valores, true o false. Al realizar una petición ajax es necesario revisar el estado en el que está en objeto, esto se refiere a , preguntar si la pagina que pedimos se cargo, si ajax aun está enviando datos, esperado respuesta, o si la pagina devuelta existe, entre otros. En este caso debemos de referirnos al método onreadystatechange, de la siguiente forma: ajax.onreadystatechange=function(){alert(”revisando el estado del objeto ajax”);} Con este método nos referimos a una función la cual revisara el estado del objeto ajax, el cual consta de 5 estados. 1. No inicializado 2. Conexión establecida 3. Recibiendo respuesta 4. Procesando respuesta 5. Finalizado Se pude comprobar estado por estado la petición, pero para nuestro ejemplo no es necesario, veamos la función a detalle: ajax.onreadystatechange=function(){ if(ajax.readyState==4) { var respuesta=ajax.responseText; document.getElementById(’resultado’).innerHTML=respuesta; } } Con el método onreadystatechange generamos una función que comprueba si el estado es igual a 4, mediante el metodo ajax.readyState, (si se ha finalizado la petición), y posteriormente creamos una variable, llamada respuesta, la cual contiene la pagina solicitada, esta respuesta puede venir de dos formas. ajax.responseText;
  • 9. Manual de ajax en español By “ajaxman” 2007 ajax.responseXML; El primero se refiere a que la respuesta será procesada como texto, por ejemplo si pedimos una pagina html, o php, asp, etc se puede utilizar este tipo de respuesta, sin embargo, si la pagina recibida es una XML es necesario usar la segunda opción. La línea de código que sigue, simplemente le dice a javascript que inserte la respuesta en un elemento de la pagina web referenciado por algún id, puede ser una tabla, un textarea, una celda, un div, etc. document.getElementById(’resultado’).innerHTML=respuesta; Esta inserción se realiza mediante el método innerHTML, el cual también trabaja de dos formas. document.getElementById(’resultado’).innerHTML=respuesta; document.getElementById(’resultado’).innerText=respuesta; Con la primera opción, la pagina que, hemos solicitado, se insertara como HTML, esto es si hemos recibido formularios, imágenes, etc.; Si lo que recibimos es solo texto , es recomendable usar innerText. El ultimo método usado es. ajax.send(null); Este método permite enviar variables, cuando utilizamos el método post para enviar datos, si en cambio se usa el método get, simplemente se concatenan la variables al nombre de la pagina (como lo vimos en el método ajax.open) . En este caso enviaremos, null, ya que no es necesario enviar más datos. Ahora creamos la página datos_get.php <?php echo $_GET[’nombre’] ; ?> _______________________________ y listo, ya tenemos nuestra primera aplicación con ajax, a la vez que aprendimos de donde salió todo este rollo de ajax.
  • 10. Manual de ajax en español By “ajaxman” 2007 Puede encontrar este y otros artículos además de más información en la página web de www.Ajaxman.net