Home
Template e Shadowing in WML

12 Aprile 2002

Template e Shadowing in WML

di

Scopriamo le ottimizzazioni che si possono utilizzare per costruire pagine WAP complesse

Negli articolo precedenti è stato spiegato come costruire una semplice pagina WML e come organizzarne i contenuti utilizzando le “card”.
L’obiettivo di questa settimana è analizzare qualche ottimizzazione che ci permette di scrivere codice WML più compatto, leggibile e mantenibile.

L’ultimo codice WML proposto come esempio era il seguente:




Card1

Card2

Card3

Card4


Questa é la card 1!


Questa é la card 2!


Questa é la card 3!


Questa é la card 4!

/

La pagina in questione è un deck composto da una card con funzioni di indice e da quattro card di dettaglio.
All’interno di ogni singola card di dettaglio notiamo l’utilizzo della action

/

che serve per utilizzare uno dei due tasti funzionali dell’apparecchio WAP assegnando ad esso una funzione specifica, in questo caso la funzionalità di equivalente al back sul browser Internet.

L’utilizzo di questa action è ripetuto diverse volte all’interno del codice, in particolare è ripetuto in ogni singola card che deve contenere la funzionalità in questione. Dal punto di vista formale questo è corretto, ma la replicazione del codice non è mai la situazione migliore, se il linguaggio lo permette è meglio prevedere delle ottimizzazioni.

Il questo conteso WML prevede la possibilità di utilizzare i Template.

Un template è un frammento di codice, da scrivere al di fuori del contenuto delle singole card, che viene incluso automaticamente in ogni card del deck.

Vediamo come potrebbe essere riscritta la pagina di esempio utilizzando un template per ottimizzare la scrittura del codice:



Card1

Card2

Card3

Card4

Questa é la card 1!

Questa é la card 2!

Questa é la card 3!

Questa é la card 4!

/

È aggiunto il nodo XML identificato dal seguente frammento:

/

e sono state eliminate le action dalle singole card.

In realtà la pagina WML continua a funzionare quasi allo stesso modo, nel senso che l’utilizzo del template permette di replicare automaticamente il codice racchiuso all’interno del template stesso in tutte le card del deck.

La differenza tra le due situazioni è una sola: la pagina che utilizza il template prevede una action specifica per tutte le card del deck, anche per la prima, quella che funge da indice, che nella situazione iniziale non aveva una action associata.

Se vogliamo avere un comportamento identico tra le due pagine WML possiamo utilizzare il meccanismo di shadowing.
Si tratta di inserire, all’interno della card per la quale non vogliamo sia applicato il template, un frammento di codice che abbia esattamente questa funzione. Questo esiste ed è il seguente:



/

In pratica si personalizza il comportamento della action generale, ereditata dal template, modificandola con un’altra action che esegue il comando che, come si intuisce, non esegue nessuna operazione.

Il codice completo diventa quindi il seguente:





Card1

Card2

Card3

Card4

Questa é la card 1!

Questa é la card 2!

Questa é la card 3!

Questa é la card 4!

/

In quest’ultimo caso il template si applica a tutte le card, tranne a quella iniziale, dove la stessa action è stata ridefinita in modo da alterarne il comportamento.

Questo meccanismo è generalizzabile in modo da poter utilizzare template anche complessi ma senza l’obbligo di includerli in tutte le card del deck.

L'autore

  • Massimo Canducci
    Massimo Canducci vanta oltre 25 anni di esperienza nel campo dell'innovazione e della digital transformation ed è Chief Innovation Officer per Engineering Ingegneria Informatica. È docente alla Singularity University, l'Università di Torino e l'Università di Pavia, e insegna in master MBA.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.