任务和任务屏蔽
内部任务
返回<prev>
用来将当前页面的URL压入URL历史堆栈,并打开此前的URL,若该URL不存在,则<prev>无效。语法类似<go>,<prev>和</prev>之间可加入一句或多句<setvar name="name" value="value"/>,若不加,则必须以<prev/>的形式出现。
刷新<refresh>
用来刷新当前的页面,从而使得页面内的变量刷新或置空,语法与prev相同。<refresh> <setvar name="name" value="value"/> </refresh>,或<refresh/>。
无动作<noop>
表示什么也不做,该标签不能用在<anchor>中,一般用在覆盖DECK级的<do>。
任务屏蔽(Task Shadowing)
WML的Task有两个级别,Deck级和Card级。通常人们还习惯把设置在某些条件中的任务成为第三级,在这里先不讨论,后面有专门的描述。
Deck Level:把通用的Task设置在template中,这个Deck中所有的Card都自动继承并使用这些task。
Card Level:只在当前的Card中有效,并替换掉Deck Level的相同属性的Task。
示例:
<wml>
<template>
<do type="options" name="general" label="Back">
<prev/>
</do>
</template>
<!-- a deck level task-->
<card id="Card1">
<p>Hello , this is a test <br/>
<a href="#card2">the second</a>
<p>
</card>
<card id="Card2">
<!-- This Card override the deck level task by noop -->
<do name="general" type="options" label="none">
<noop/>
</do>
<p>nothing happend here</p>
</card>
</wml>