|
|
Línea 8: |
Línea 8: |
| | | |
| <div class="slide"> | | <div class="slide"> |
− |
| |
| === JSON === | | === JSON === |
| * '''J'''ava'''S'''cript '''O'''bject '''N'''otation | | * '''J'''ava'''S'''cript '''O'''bject '''N'''otation |
Línea 57: |
Línea 56: |
| </div> | | </div> |
| | | |
− | <div class="slide">
| |
− | ===Cachear AJAX===
| |
− | <source lang="javascript">
| |
− | $.ajaxSetup ({
| |
− | cache: false
| |
− | });
| |
− | </source>
| |
− | *Será útil usar caché solamente con contenidos estáticos.
| |
− | *Es aconsejable indicarlo porque el comportamiento por defecto puede variar en función del navegador.
| |
− | </div>
| |
| <div class="slide"> | | <div class="slide"> |
| ===Método load=== | | ===Método load=== |
Línea 116: |
Línea 105: |
| </source> | | </source> |
| </div> | | </div> |
− |
| |
| <div class="slide"> | | <div class="slide"> |
| ====Con mensaje de "carga"==== | | ====Con mensaje de "carga"==== |
Línea 137: |
Línea 125: |
| ?> | | ?> |
| </source> | | </source> |
| + | </div> |
| + | <div class="slide"> |
| + | ===Otros métodos=== |
| + | *$.getJSON(): Obtiene un fichero JSON de un sitio remoto |
| + | *$.getScript(): Obtiene un fichero javascript de un sitio remoto |
| + | *$.get(): hace peticiones ajax vía GET |
| + | *$.post(): hace peticiones ajax vía POST |
| + | *$.ajax(): De más bajo nivel. Será útil para controlar errores en las peticiones AJAX. |
| + | |
| + | |
| + | |
| + | </div> |
| + | <div class="slide"> |
| + | |
| | | |
| ===Ajax y Firebug=== | | ===Ajax y Firebug=== |
Línea 163: |
Línea 165: |
| </source> | | </source> |
| [[Archivo:firebug_load_5.png]] | | [[Archivo:firebug_load_5.png]] |
| + | </div> |
| + | <div class="slide"> |
| | | |
− | [[Archivo:firebug_load_6.png]]
| |
− | [[Archivo:firebug_load_7.png]]
| |
− | [[Archivo:firebug_load_8.png]]
| |
− | [[Archivo:firebug_load_9.png]]
| |
| </div> | | </div> |
| </div> | | </div> |
Revisión de 11:29 5 nov 2012
jQuery
Tutorial para desarrollar en Web mediante jQuery.
JSON
- JavaScript Object Notation
- Se utiliza para almacenar e intercambiar información
- Más pequeño que XML y más rápido y sencillo de analizar (parsear).
- Se basa en la sintaxis del propio JavaScript para objetos.
//Objeto JSON:
{ "nombre":"Pepe" , "apellido":"Pérez" }
//Array JSON
{
"estudiantes": [
{ "nombre":"Juan" , "lastName":"Alcocer" },
{ "nombre":"Ana" , "lastName":"Serrano" },
{ "nombre":"Mario" , "lastName":"Gil" }
]
}
//sintáxis en JavaScript:
var estudiantes = [
{ "nombre":"Juan" , "lastName":"Alcocer" },
{ "nombre":"Ana" , "lastName":"Serrano" },
{ "nombre":"Mario" , "lastName":"Gil" }
];
¿Qué es AJAX?
- AJAX quiere decir Asynchronous JavaScript and XML.
- Sirve para cargar datos en background y mostrarlos en la web sin necesidad de recargar la página, por eso lo de asíncrono.
- XHR significa XML HTTP REQUEST y es hablar de lo mismo.
- Lo podemos ver en el inbox de gmail, en google maps cuando aplicamos el zoom, etc.
- jQuery y AJAX:
- La implementación de AJAX es distinta en función del navegador.
- Podremos recibir ficheros de tipo texto, XML, html o JSON mediante http GET o POST.
Cachear AJAX
$.ajaxSetup ({
cache: false
});
- Será útil usar caché solamente con contenidos estáticos.
- Es aconsejable indicarlo porque el comportamiento por defecto puede variar en función del navegador.
Método load
- Es el método más sencillo.
<html>
<head>
<title>Ajax Simple</title>
<script src="jquery-1.8.2.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
$("#enlaceajax").click(function(evento){
evento.preventDefault();
$("#destino").load("contenido-ajax.html");
});
})
</script>
</head>
<body>
<a href="#" id="enlaceajax">Haz clic!</a>
<br>
<div id="destino"></div>
</body>
</html>
Paso de parámetros
- El método load puede llevar parámetros o una función de callback:
$(document).ready(function(){
$("#enlaceajax").click(function(evento){
evento.preventDefault();
$("#destino").load("recibe-parametros.php", {nombre: "Pepe", edad: 45}, function(){
alert("recibidos los datos por ajax");
});
});
})
Recibido el siguiente dato:
<br/>
Nombre: <?php echo $_POST["nombre"];?>
<br/>
Edad: <?php echo $_POST["edad"];?>
Con mensaje de "carga"
$(document).ready(function(){
$("#enlaceajax").click(function(evento){
evento.preventDefault();
var ajax_load = "<img src='img/load.gif' alt='loading...' />";
var loadUrl = "pagina_lenta.php";
$("#result").html(ajax_load).load(loadUrl);
});
})
</script>
<?php
sleep(3);
echo ("He tardado 3 segundos en ejecutar esta p&aactute;gina...");
?>
Otros métodos
- $.getJSON(): Obtiene un fichero JSON de un sitio remoto
- $.getScript(): Obtiene un fichero javascript de un sitio remoto
- $.get(): hace peticiones ajax vía GET
- $.post(): hace peticiones ajax vía POST
- $.ajax(): De más bajo nivel. Será útil para controlar errores en las peticiones AJAX.
Ajax y Firebug
- Podemos hacer un seguimiento de las peticiones Ajax desde la pestaña de Red de Firebug, opción XHR (XML HTTP REQUEST):
- Si pulsamos en el recuadro del + a la izquierda, podremos ver los parámetros que se envían en la petición AJAX.
En esta petición no hay ningún parámetro. El único que hay es un número aleatorio generado para forzar que la petición no se sirva de la caché.
- En la pestaña de respuesta (response) encontramos lo que devuelve la petición AJAX:
- En este caso enviamos más de un parámetro vía GET. Para pasar más de un parámetro:
$("#load_get").click(function(){
$("#result")
.html(ajax_load)
.load(loadUrl, "language=php&version=5");
});
- Si pasamos los parámetros como un objeto en vez de como una cadena, se enviarán vía POST:
$("#load_post").click(function(){
$("#result")
.html(ajax_load)
.load(loadUrl, {language: "php", version: 5});
});