La tareas nos van a especificar un proceso que es realizado en respuesta a un evento como la finalizaci�n de una temporizaci�n, entrar en una carta, o activar una ancla (veremos las anclas en el siguiente cap�tulo).
En este cap�tulo vamos a estudiar las tareas aplic�ndolas a un uso concreto: navegar entre cartas y barajas. Para ello, comenzamos exponiendo la etiqueta <do>. Esta etiqueta va a ser la que nos permita programar las acciones que puede hacer el usuario en una carta. La representaci�n de este elemento depende del navegador; lo que debe saberse es que ser� mostrado como un �nico elemento que el usuario podr� activar. Esta representaci�n puede ser un bot�n, una tecla de funci�n, ... es decir, cualquier interfaz que disponga de una operaci�n sencilla de "activar". Cuando el usuario activa el <do>, la tarea asociada es ejecutada.
La etiqueta <do> puede aparecer tanto a nivel de carta como a nivel de baraja. A nivel de carta significa que puede ponerse dentro de la etiqueta pareada <card> ... </card>, y a nivel de baraja significa que puede ponerse dentro de una plantilla (template), aunque el punto de las plantillas lo trataremos en otro cap�tulo. Lo veremos m�s adelante, pero hay que decir ahora que si tenemos un <do> en una plantilla, y en una carta concreta ponemos un <do>, este ser� el que se tenga en cuenta, "sobreescribiendo", digamos, al de la plantilla, en el caso de que tengan el mismo nombre.
Veamos los par�metros que tiene esta etiqueta:
- type: Nos dice qu� acci�n deber� ejecutarse, siendo estas:
- accept: Aceptar� la cci�n que se asigna dentro del <do> y se ejecuta
- prev: Ir hacia atr�s en el historial del navegador
- help: Petici�n de ayuda
- reset: Limpia o resetea el estado
- options: Petici�n de opciones u operaciones adicionales
- delete: Borra un elemento o una elecci�n
- unknown: Se trata de un <do> gen�rico. Es esquivalente a poner una cadena vac�a, ""
- name: El nombre que le demos ser� el identificador del <do>. No debemos dar el mismo name a dos <do> distintos dentro de la misma carta.
- label: Se trata de un texto que aparece en la representaci�n que haga el navegador de la etiqueta <do>. Por ejemplo, si es un bot�n se tratar� de su t�tulo.
Dentro de la etiqueta <do>, podemos poner las siguientes tareas: * <go/> * <prev/> * <noop/> * <refresh/>
Tras estudiarlas vamos a ver un ejemplo que nos aclare su uso. Comenzamos con la etiqueta . Con ella, declaramos una tarea de tipo go, indicando que hay que navegar hacia una URL. Podemos especificar dos par�metros, href y method.
El primero es obligatorio, y nos dice la URL que vamos a visitar. Si se trata de una carta dentro de la baraja en la que estamos, escribiremos el nombre de esa carta precedido de #.
Por ejemplo, si queremos ir a la carta cuyo id (v�ase aqu� la importancia de este par�metro) es carta7, escribiremos <go href="#carta7"/>. Si se trata de otra baraja, escribiremos su URL, relativa o total, dependiendo de si est� en el mismo servidor o en otro (para una explicaci�n exhaustiva de estos detalles, consulta el punto sobre qu� es un URL y c�mo referenciarlo en el cap�tulo 4 del curso de HTML). Al cargarse la baraja, ir� autom�ticamente a la primera carta. Si queremos que en vez de a la primera vaya a otra carta, escribiremos <go href="URL_baraja.wml#idcarta"/>
El segundo par�metro (method) puede tomar los valores GET o POST, y se usa para enviar datos al servidor. Esto lo veremos m�s adelante, cuando hablemos de formularios.
Ahora veamos las otras tres tareas, que son mucho m�s breves. En primer lugar, tenemos <prev/>. Esto nos declara una tarea de tipo prev, que indica al navegador que tiene que ir a la p�gina anterior en el historial. En segundo lugar, tenemos <refresh/>. Esto nos declara una tarea de tipo refresh, indicando al navegador una actualizaci�n del contexto tal y como viene especificado por los elementos setvar (tambi�n ser�n tratados m�s adelante). Por �ltimo, tenemos <noop/>, cuyo propio nombre indica que la tarea a realizar es "nada" (noop viene de "no operation").
Vamos ya a ver un ejemplo en el que se muestra de forma clara (espero) c�mo trabajar con tareas. El ejemplo consta de tres barajas, para ilustrar el uso de URL relativas, que acceden a una carta concreta de otra baraja:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="c1" title="Carta 1">
<p> En este ejemplo, vamos a ver como navegar entre
distintas cartas y barajas. Esta es la primera
carta de esta baraja. Para acceder a la segunda,
tenemos esta opcion:
<do type="accept" label="Ir a c2">
<go href="#c2"/>
</do>
</p>
</card>
<card id="c2" title="Carta 2">
<p> Ahora estamos en la segunda carta. Podemos
volver a la primera, o podemos visitar la
tercera, segun lo que elijas:
<do type="accept" label="Ir a c1" name="c1">
<go href="#c1"/>
</do>
<do type="accept" label="Ir a c3" name="c3">
<go href="#c3"/>
</do>
</p>
</card>
<card id="c3" title="Carta 3">
<p> Y ahora estamos en la tercera carta.
Podemos regresar a la anterior,
o puedes ir a la segunda baraja, para
ver como moverte entre barajas.
<do type="prev">
<prev/>
</do>
<do type="accept" label="Baraja 2">
<go href="Ej_naveg2.wml"/>
</do>
</p>
</card>
</wml>
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="c1" title="Carta 1">
<p> Esta es la segunda baraja. Y esta es la
primera carta de la segunda baraja.
Si quieres volver a la baraja anterior,
segunda carta, pulsa la primera opcion.
Si prefieres ir a la siguiente carta, pulsa
la segunda.
<do type="accept" label="Baraja 1, c2" name="b1c2">
<go href="Ej_naveg1.wml#c2"/>
</do>
<do type="accept" label="Baraja 2, c2" name="b2c2">
<go href="#c2"/>
</do>
</p>
</card>
<card id="c2" title="Carta 2">
<p> Ya estamos en la segunda carta de la segunda
baraja. No ha sido tan dificil, eh? Ah, pulsa
por si quieres ir a la carta anterior:
<do type="prev">
<prev/>
</do>
<do type="help">
<go href="ayuda.wml"/>
</do>
</p>
</card>
</wml>
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="c1" title="Ayuda">
<p> Esta seria la ayuda solicitada. Aunque
en este caso concreto no sirva de mucha
ayuda, por tratarse de un ejemplo
con fines educativos :-)
<br/>Ah, y no te olvides de permitir
volver atras ;-)
<do type="prev">
<prev/>
</do>
</p>
</card>
</wml>
Con esto finaliza el cap�tulo dedicado a tareas. En el pr�ximo tratamos el tema de enlaces y anclas.