WML - Tâches

Une tâche WML est un élément qui spécifie une action à effectuer par le navigateur, plutôt qu'un élément à afficher. Par exemple, l'action de passer à une nouvelle carte est représentée par un élément de tâche <go>, et l'action de retour à la carte précédente visitée est représentée par un élément de tâche <prev>. Les éléments de tâche encapsulent toutes les informations requises pour exécuter l'action.

WML fournit les quatre éléments suivants pour gérer quatre tâches WML appelées tâche aller, tâche préalable, tâche d'actualisation et tâches noop.

La tâche <go>:

Comme son nom l'indique, la tâche <go> représente l'action d'aller sur une nouvelle carte.

L'élément <go> prend en charge les attributs suivants:

Attribut Valeur La description
href URL Donne l'URL de la nouvelle carte. Les URL relatives sont résolues par rapport à la carte actuelle
méthode
  • get
  • post
Spécifie la méthode à utiliser pour récupérer le deck. Il doit s'agir de l'une des valeurs get ou post, correspondant aux méthodes GET et POST de HTTP.

Lors de l'utilisation method="get", les données sont envoyées sous forme de demande avec? données ajoutées à l'url. La méthode présente un inconvénient, car elle ne peut être utilisée que pour une quantité limitée de données, et si vous envoyez des informations sensibles, elles seront affichées à l'écran et enregistrées dans les journaux du serveur Web. N'utilisez donc pas cette méthode si vous envoyez un mot de passe, etc.

Avec method="post", les données sont envoyées sous forme de requête avec les données envoyées dans le corps de la requête. Cette méthode n'a pas de limite et les informations sensibles ne sont pas visibles dans l'URL

Sendreferer
  • true
  • false
S'il est défini sur true, le navigateur envoie l'URL du deck actuel avec la requête. Cette URL est envoyée en tant qu'URL relative si possible. Le but de ceci est de permettre aux serveurs d'effectuer un contrôle d'accès simple sur les decks, en fonction des decks qui leur sont liés. Par exemple, en utilisant HTTP, cet attribut est envoyé dans l'en-tête HTTP Referer.
accept-charset charset_list Spécifie une liste de jeux de caractères séparés par des virgules ou des espaces qui peuvent coder les données envoyées au serveur dans une requête POST. La valeur par défaut est "inconnue".
classe données de classe Définit un nom de classe pour l'élément.
id ID d'élément Un identifiant unique pour l'élément.

Voici l'exemple montrant l'utilisation de l'élément <go>.

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">

<wml>

<card title="GO Element">
<p>
   <anchor>
       Chapter 2 : <go href="chapter2.wml"/>
   </anchor>
</p>
</card>
</wml>

Un autre exemple montrant comment télécharger des données à l'aide de la méthode Get

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">

<wml>

<card title="GO Element">
<p>
   <anchor>
      Using Get Method 
      <go href="chapter2.wml?x=17&y=42" method="get"/>
   </anchor>
</p>
</card>
</wml>

Un autre exemple montrant comment télécharger des données à l'aide de l'élément <setvar>.

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">

<wml>

<card title="GO Element">
<p>
   <anchor>
      Using setvar:
	  <go href="chapter2.wml"> 
	      <setvar name="x" value="17"/> 
  	      <setvar name="y" value="42"/> 
	  </go>
   </anchor>
</p>
</card>
</wml>

Un autre exemple montrant comment télécharger des données à l'aide de l'élément <postfiled>

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">

<wml>

<card title="GO Element">
<p>
   <anchor>
      Using setvar:
	  <go href="chapter2.wml" method="get"> 
              <postfield name="x" value="17"/>
              <postfield name="y" value="42"/>
	  </go>
   </anchor>
</p>
</card>
</wml>

La tâche <prev>:

La tâche <prev> représente l'action de revenir à la carte précédemment visitée sur la pile d'historique. Lorsque cette action est effectuée, l'entrée supérieure est supprimée de la pile d'historique et cette carte est à nouveau affichée, après que toutes les affectations de variable <setvar> dans la tâche <prev> ont pris effet.

Si aucune URL précédente n'existe, la spécification de <prev> n'a aucun effet.

L'élément <prev> prend en charge les attributs suivants:

Attribut Valeur La description
classe données de classe Définit un nom de classe pour l'élément.
id ID d'élément Un identifiant unique pour l'élément.

Voici l'exemple montrant l'utilisation de l'élément <prev>.

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">

<wml>

<card title="Prev Element">
<p>
   <anchor>
        Previous Page :<prev/>
   </anchor>
</p>
</card>
</wml>

Une situation où il peut être utile d'inclure des variables dans une tâche <prev> est une page de connexion, qui demande un nom d'utilisateur et un mot de passe. Dans certaines situations, vous souhaiterez peut-être effacer le champ du mot de passe lors du retour à la carte de connexion, obligeant l'utilisateur à le saisir à nouveau. Cela peut être fait avec une construction telle que:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">

<wml>

<card title="Prev Element">
<p>
   <anchor>
        <prev>
           <setvar name="password" value=""/>
        </prev>
   </anchor>
</p>
</card>
</wml>

La tâche <refresh>:

La tâche <refresh> est la tâche la plus simple qui fait réellement quelque chose. Son effet est simplement d'effectuer les affectations de variables spécifiées par ses éléments <setvar>, puis de réafficher la carte courante avec les nouvelles valeurs. Les tâches <go> et <prev> effectuent la même action juste avant d'afficher la nouvelle carte.

La tâche <refresh> est le plus souvent utilisée pour effectuer une sorte d'action "reset" sur la carte.

L'élément <refresh> prend en charge les attributs suivants:

Attribut Valeur La description
classe données de classe Définit un nom de classe pour l'élément.
id ID d'élément Un identifiant unique pour l'élément.

Voici l'exemple montrant l'utilisation de l'élément <refresh>.

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">

<wml>

<card title="Referesh Element">
<p>
   <anchor>
         Refresh this page:
          <go href="test.wml"/>
          <refresh>
            <setvar name="x" value="100"/>
          </refresh>
   </anchor>
</p>
</card>
</wml>

La tâche <noop>:

Le but de la tâche <noop> est de ne rien faire (aucune opération).

La seule réelle utilisation de cette tâche est en relation avec des modèles

L'élément <noop> prend en charge les attributs suivants:

Attribut Valeur La description
classe données de classe Définit un nom de classe pour l'élément.
id ID d'élément Un identifiant unique pour l'élément.

Voici l'exemple montrant l'utilisation de l'élément <noop>.

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">

<wml>

<card title="Noop Element">
<p>
  <do type="prev" label="Back">
      <noop/>
  </do>
</p>
</card>
</wml>