Task

WML允許你當某些事件發生時,可以指定某些特定的 Task(任務),例如指定到某些特定的Card上

WML包括了四個任務成員(Task element)

Go Prev Noop Refresh

 

任務(Task)被限制在下列的事件(Event)中

do

onevent

一個anchor 成員可能包括 “ go “ “prev” 或者 “refresh” 等任務(task)

GO Task

一個go 的成員宣告一個go的任務,暗指探索一個超連結, 如果超連結是一個WML的Card或Deck,它將被顯示出來, 一個go相當於執行一個在堆疊中的push的動作

  • 包含的成員(element)

    setvar *

    postfield *

  • go 屬性表:
    href=href這個屬性為指定一個目的地的 URI,例如card的 URI被顯示 (此屬性為必須)
    sendreferer=boolean如果此屬性值為True, 使用者代理人允許伺服器顯示在URI的存取控制格式,如果你要限制存取 你的服務功能,decks的URI的要求必須設定為True,預設值為False
    method=(post|get) 此屬性決定http的遞送方法,預設值為get
    accept-charest=CDATA 此屬性指定當server處理輸入資料的編碼格式
    id 見” 一般屬性”
    class 見” 一般屬性”

    成員(element)也許包含一個或更多個postfield的成員, 這些成員能夠在request時,傳遞一些資訊給Server,這些被遞送的欄位資料, 以下列方式處理

    1. 欄位名稱/資料 被辨認且所有值被代替
    2. 代理器應該能矯正欄位名稱和值,藉由accept-charest明白地指定
    3. 欄位名稱和值避免使用URL-escaping
    4. 一個請求將依method的屬性值如何被顯示
  • 範例 [30]

    在下列的例子中,成員go 將使用get的方法傳遞到此URL “/foo?x=1” :


    <go href=”/foo”>
    <postfield name=”x” value=”1”/>
    </go>

    在下列的例子中,使用post方法傳遞下列訊息 ” w=12&y=test”到URL “/bar”


    <go href=”/bar” method=post>
    <postfield name=”w” value=”12”/>
    <postfield name=”y” value=”test”/>
    </go>

    下列的例子將建立一個有標籤Help的使用者介面且能夠進入名字為 help的card,當它被觸發時


    < card id=”card1”>
    <do type=”help” label=”Help”>
    <go href=”#help”/>
    </do>
    </card>
    <card id=”help”>
    <p>
    Help topics
    </p>
    </card>

    prev Task

    成員 prev ,宣告一個”prev”的任務,暗指將回到以前的URI,在堆疊中, 一個prev是將堆疊pop 一個URI出來,並將目前的放入堆疊中,如果沒有任何URI 在堆疊中,此成員無任何影響.

  • 包含成員

    setvar *

  • 屬性表:

    id 見” 一般屬性”

    class 見” 一般屬性”

  • 範例[31]

    下例為建立一個標籤為Back的使用者介面,當觸發時能夠回到以前的card


    <do type=”accept” label=”Back”>
    <prev/>
    </do>
    <p>
    Hello, World!!
    </p>

    refresh task

    描述:

    成員 refresh 為宣告一個更新的任務,能夠更新指定的card的值, 使用者可以看到狀態的改變,即使沒有成員 setvar 被給予, 其更新和邊際影響也會改變其內容

  • 包含成員

    setvar *

  • 屬性表:

    id 見” 一般屬性”

    class 見” 一般屬性”

  • 範例 [32]

    下列的WML將為變數product設一個foo的值而且更新,顯示其值


    <refresh>
    <setvar name=”product” value=”foo”/>
    </refresh>

    noop task

    此成員為指定沒有任何事情應該被做,即”無任何的操作”, 此成員是有用的, 在於deck 層次的 “do”

  • 屬性表:

    id 見” 一般屬性”

    class 見” 一般屬性”