WML - Attività

Un'attività WML è un elemento che specifica un'azione che deve essere eseguita dal browser, piuttosto che qualcosa da visualizzare. Ad esempio, l'azione di passare a una nuova scheda è rappresentata da un elemento attività <go> e l'azione di tornare alla scheda precedente visitata è rappresentata da un elemento attività <prev>. Gli elementi dell'attività racchiudono tutte le informazioni richieste per eseguire l'azione.

WML fornisce i seguenti quattro elementi per gestire quattro attività WML chiamate go task, pre task, refresh task e noop taks.

Il compito <go>:

Come suggerisce il nome, l'attività <go> rappresenta l'azione di passare a una nuova carta.

L'elemento <go> supporta i seguenti attributi:

Attributo Valore Descrizione
href URL Fornisce l'URL della nuova carta. Gli URL relativi vengono risolti in relazione alla carta corrente
metodo
  • get
  • post
Specifica il metodo da utilizzare per recuperare il mazzo. Deve essere uno dei valori get o post, corrispondente ai metodi GET e POST di HTTP.

Quando si usa method="get", i dati vengono inviati come richiesta con? dati aggiunti all'URL. Il metodo ha uno svantaggio, che può essere utilizzato solo per una quantità limitata di dati, e se invii informazioni sensibili verranno visualizzate sullo schermo e salvate nei log del server web. Quindi non utilizzare questo metodo se stai inviando password ecc.

Con method="post", i dati vengono inviati come richiesta con i dati inviati nel corpo della richiesta. Questo metodo non ha limiti e le informazioni sensibili non sono visibili nell'URL

sendreferer
  • true
  • false
Se impostato su true, il browser invia l'URL del mazzo corrente insieme alla richiesta. Questo URL viene inviato come URL relativo, se possibile. Lo scopo di ciò è consentire ai server di eseguire un semplice controllo degli accessi sui deck, in base a quali deck si collegano ad essi. Ad esempio, utilizzando HTTP, questo attributo viene inviato nell'intestazione Referer HTTP.
accetta-charset charset_list Specifica un elenco di set di caratteri separati da virgole o spazi che possono codificare i dati inviati al server in una richiesta POST. Il valore predefinito è "sconosciuto".
classe dati di classe Imposta un nome di classe per l'elemento.
id ID elemento Un ID univoco per l'elemento.

Di seguito è riportato l'esempio che mostra l'utilizzo dell'elemento <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 altro esempio che mostra come caricare i dati utilizzando Get Method

<?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 altro esempio che mostra come caricare i dati utilizzando l'elemento <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 altro esempio che mostra come caricare i dati utilizzando l'elemento <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>

Il compito <prev>:

L'attività <prev> rappresenta l'azione di tornare alla scheda precedentemente visitata nello stack della cronologia. Quando viene eseguita questa azione, la voce in alto viene rimossa dallo stack della cronologia e quella scheda viene visualizzata di nuovo, dopo che qualsiasi assegnazione di variabile <setvar> nell'attività <prev> ha avuto effetto.

Se non esiste alcun URL precedente, specificare <prev> non ha effetto.

L'elemento <prev> supporta i seguenti attributi:

Attributo Valore Descrizione
classe dati di classe Imposta un nome di classe per l'elemento.
id ID elemento Un ID univoco per l'elemento.

Di seguito è riportato l'esempio che mostra l'utilizzo dell'elemento <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>

Una situazione in cui può essere utile includere variabili in un'attività <prev> è una pagina di accesso, che richiede un nome utente e una password. In alcune situazioni, potresti voler cancellare il campo della password quando torni alla scheda di accesso, costringendo l'utente a reinserirla. Questo può essere fatto con un costrutto come:

<?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>

L'attività <refresh>:

L'attività <refresh> è l'attività più semplice che fa effettivamente qualcosa. Il suo effetto è semplicemente quello di eseguire le assegnazioni delle variabili specificate dai suoi elementi <setvar>, quindi visualizzare nuovamente la scheda corrente con i nuovi valori. Le attività <go> e <prev> eseguono la stessa azione appena prima di visualizzare la nuova carta.

L'attività <refresh> viene spesso utilizzata per eseguire una sorta di azione di "ripristino" sulla scheda.

L'elemento <refresh> supporta i seguenti attributi:

Attributo Valore Descrizione
classe dati di classe Imposta un nome di classe per l'elemento.
id ID elemento Un ID univoco per l'elemento.

Di seguito è riportato l'esempio che mostra l'utilizzo dell'elemento <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>

Il compito <noop>:

Lo scopo dell'attività <noop> è non fare nulla (nessuna operazione).

L'unico vero utilizzo di questa attività è in relazione ai modelli

L'elemento <noop> supporta i seguenti attributi:

Attributo Valore Descrizione
classe dati di classe Imposta un nome di classe per l'elemento.
id ID elemento Un ID univoco per l'elemento.

Di seguito è riportato l'esempio che mostra l'utilizzo dell'elemento <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>