You are on page 1of 2

AJAX (Asynchronous Javascript and XML)

Permite modificar la página, sin recargarla.


Pedir y recibir datos del servidor después de haber cargado la página.
Mandar datos al servidor en background.
Se basa en varios estándares de internet:
XMLHttpRequest object (Para recibir información del servidor)
JavaScript/DOM (Para utilizar dicha información)

XMLHttpRequest Object se utiliza para intercambiar datos con un servidor en segundo plano, permite actualizar
páginas web sin volver a cargar la página entera.
var xhttp = new XMLHttpRequest(); --Forma actual
var xhttp = new ActiveXObject("Microsoft.XMLHTTP"); -- Forma antigua

Peticiones:
xhttp.open(metodo, url, async); --- Método (GET,POST), url (localización del fichero del servidor),
True (asíncrono) False (síncrono)
xhttp.send(); --- Envía una petición al servidor con GET
xhttp.send(string); --- Envía una petición al servidor con POST
xhttp.setRequestHeader(header,value); --- Añade una cabecera Http a la petición. Cabecera y valor.

Respuestas:
xhttp.responseText --- Obtiene la respuesta como un String
xhttp.responseXML --- Obtiene la respuesta como un xml

Eventos:
xhttp.onreadystatechange() = function --- Establece la llamada a una función cuando Ready State cambia.
xhttp.readystate --- Establece varios estados:
0: Petición no inicializada.
1: Conexión con el servidor establecida.
2: Petición recibida.
3: Petición procesada.
4: Petición finalizada y respuesta lista.
xhttp.status --- 200 = “OK” 404: “Page not Found”

function loadDoc(cFunc){
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function(){ --- Cuando el readyState cambie, si la petición
if (xhttp.readyState == 4 && xhttp.status == 200){ ha finalizado y todo esta OK llama a cFunc
cFunc(xhttp);
}
}

JSON (Javascript Object Notation)


Es un formato de intercambio de datos ligero. Extensión .json
Es independiente del lenguaje. (Se escribe como Javascript, pero es solo texto al estilo XML)
Muy fácil de entender y se auto-describe.
Mientras que XML para analizarlo necesitas un Parser, para JSON te vale una función estándar de Javascript.
Las cadenas de datos son String.
Dato JSON -- “nombre”:valor;

var empleados=[
{“nombre”:”Juan”,”apellido”:”Garcia”}, ---Definición de un array con JSON
{“nombre”:”Pepe”,”apellido”:”Perez”},
{“nombre”:”Pablo”,”apellido”:”Ruano”}
];

empleados[0].nombre + “ ” + empleados[0].apellido; --- Forma de acceder, nos devuelve Juan Garcia


empleados[0][“nombre”] + “ “ + empleados[0][“apellido”]; --- Otra forma de acceder
empleados[0].nombre = “Alberto”; --- Insertamos un elemento en el Array
empleados[0][“nombre”] = “Alberto”; --- Otra forma de hacerlo

La función javascript JSON.parse(texto); transforma un objeto texto JSON en un objeto javascript.

1
Ejemplo uso JSON con javascript.
<!DOCTYPE html>
<html>
<body>
<h2>Ejemplo JSON</h2>
<p id=”prueba”></p> --- Elemento que luego será rellenado
<script>
var text= “{“empleados”:[ +
‘{“nombre”:”Juan”,”apellido”:”Garcia”},’ + --- Creación del texto Json
‘{“nombre”:”Pepe”,”apellido”:”Sanz”},’ +
‘{“nombre”:”Jose”,”apellido”:”Perez”}]}’;

obj = JSON.parse(text); --- Transforma el texto en un objeto javascript para usarlo


document.getElementById(“prueba”).innerHTML = --- Rellena prueba con los
obj.empleados[2].nombre + “ “ +obj.empleados[2].apellido; datos del objeto JSON
</script> transformado
</body>
</html>

JSONP (JSON con padding)


Técnica de javascript utilizada para hacer llamadas asíncronas a dominios diferentes.
Con AJAX sólo se pueden hacer llamadas al mimo dominio y puerto por razones de seguridad. Utilizando la
etiqueta <script> y src podemos acceder a un url remota saltándonos esa restricción.
JSONP consiste en realizar una llamada al servidor remoto donde los datos están envueltos en una función
javascript, de esta forma accedes a ellos sin limitación, simplemente llamando a la función.

jsonCallback({
“key”: “224Wrf2as….”, --Función envoltorio donde se encuentran los datos JSON
“status”:”good”,
“name”:”pepe”,
“fecha”:”20/10/2015”});

<script type=”text/javascript” src=http://servidor.ejemplo.com/datos.json?callback=parseJSON></script>

Llamada al dominio por javascript utilizando jsonp o callback como nombre del campo en la solicitud al servidor.

BSON (Binary JSON)


JSON utilizado en bases de datos NoSQL, como MongoDb, orientado a tener una velocidad y almacenamiento
más eficientes. Utiliza por lo general más espacio de memoria que JSON.

GeoJSON
Estándar abierto orientado a la representación de elementos geográficos sencillos. Representan los elementos
con puntos, líneas y polígonos. Evoluciona en TopoJSON que representa topologías.

Gson (Google Gson)


Biblioteca de código abierto para el lenguaje de programación Java que permite la serialización y deserialización
entre objetos Java y su representación en notación JSON.
toJson() --- envía fromJson() --- recibe
Básicamente usar JSON en JAVA.

Gson gson = new Gson();


Persona persona = (persona) gson.fromJson(json, Persona.class);

You might also like