Curso de WML

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:

Ej_naveg1.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> 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>
Ej_naveg2.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>
ayuda.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.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP