首 页WAP教程WAP源码WAP电子书客户留言龙腾电脑维修网158网络电视本站论坛繁體中文
设为首页
加入收藏
联系我们
您当前的位置:WAP开发网 -> WAP教程 -> WML教程 -> 文章内容 退出登录 用户管理
栏目导航
· ASP WAP开发教程 · ASP.net WAP开发教程
· PHP WAP开发教程 · WML教程
· JSP开发WAP教程 · WAP 2.0
· 综合杂谈
热门文章
· WAP 2.0教程
· WML语言基础(WAP建站...
· 用VS2005实现ASP.NE...
· [组图] php WAp开发教程
· WML语言基础(WAP建站...
· VS.NET 2003开发移动...
· [图文] ASP技术进行动态WAP...
· [图文] WML语言基础(WAP建站...
· asp.net移动控件开发...
· [图文] 创建移动Web应用程序...
相关文章
· asp.net强制输出WML...
· WML初级教程之关于W...
· 使用WML和ASP编写动...
· [推荐] 如何链接WML和XHTML...
· WAP初级教程----桌面...
· WAP初级教程---显示...
· WAP初级教程----WML...
· WAP初级教程---WML基...
· PHP建立动态的WML站...
· wml如何实现下载图片...
WAP初级教程-----任务(TASK)
作者:不详  来源:本站整理  发布时间:2006-6-6 12:07:11  发布人:tangyunfei

减小字体 增大字体


任务(TASK)

<noop> <prev> <refresh> <go>

前面我们已经讲过如何在WML中显示内容。不过任何程序员都知道,没有结构和进程就没有程序。在WML中定义进程有很多方法,最简单的就是任务。

WAP1.1定义了几种类型的任务,任务通过对事件(有关事件的详细解释见下一章事件)的响应改变程序的运行顺序。有四种WML任务: <noop>、 <prev>、 <refresh><go>。

<noop>
这个任务不做任何事情,一般用于屏蔽DECK级事件(参见桌面和事件),语法非常简单:

<noop/>

<prev>
当用户激活该任务时,终端就转回上次用户访问过的URL。语法如下:

<prev>
   <setvar>
   ......
</prev>


如果<prev>中包含了<setvar>元素,就会优先处理。下面例子定义了一个只有Back按钮的的DECK,按下以后会返回前面看过页面。

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

<wml>
<card>
  <p>
   <anchor>
    Back
    <prev/>
   </anchor>
  </p>
</card>
</wml>

<refresh>
当用户激活该任务时,就执行一个刷新过程。如果这个任务里使用<setvar>定义了变量,变量值将被重新设置。语法如下:

<prev>
   <setvar>
   ......
</prev>

如果当前CARD含有<timer>元素,那么在刷新时<timer>优先启动。
下面的例子定义在屏幕刷新时重设firstname、lastname和age变量。

<do type="refresh">
  <refresh>
   <setvar name="firstname" value="david">
   <setvar name="lastname" value="smith">
   <setvar name="age" value="29">
  </refresh>
</do>

<go>
当用户激活该任务时,就引导用户去WML中指定URL,可以是服务器上其他的DECK,也可以是本DECK中其他的CARD。语法如下:

<go
   accept-charset="STRING"
   href="URL"
   method="post|get" sendreferer="true|false" >
   <postfield>, <setvar>......
</go>

href:必选属性,指向一个合法URL。如果是其他的DECK,则该DECK的第一个CARD会显示出来。如果是本DECK中的其他CARD,而历史堆栈里保存的是最新数据的话,则堆栈保持不变,直接调入该CARD。

sendreferer:如果为true,用户主体信息(USER AGENT)必须传送给WAP网关。传送时使用HTTP的提交头信息,即尽可能简短的相对URL。这个属性可以用来给服务器控制存取URL的权力。默认值为false。

Method:值必须为get或post。分别用来产生HTTP的GET和POST请求。若为get,则在URL中列出参数,例如:“http://www.wap86.net/bob.cgi?argone=one”;若为post,则数据在请求内部传送,不需要在URL中列出。

Accept-charset:指定字符集名称列表,服务器在接受<go>的时候必须接受这个编码规则。默认值为unknown。具体内容这里不作解释,在以后的高级教程中描述。

下面是一个简单的例子:

<go href="../topic.wml" sendreferer="true">

<postfield>
<postfield>并不是一个任务,但是跟<go>任务有关,所以在这里介绍。它用来定义“名称/值”对以便通过<go>向服务器发送HTTP请求。语法如下:
当用户激活该任务时,就引导用户去WML中指定URL,可以是服务器上其他的DECK,也可以是本DECK中其他的CARD。语法如下:
下面是一个简单的例子:

<postfield name="STRING" value="STRING" />

当一个含有<postfield>的任务被执行的时候,终端要完成这样一个过程:

1、识别“名称/值”对并准备参数变量;
2、参数变量转换成正确的字符集;
3、根据URL的ESCAPE规则对参数进行ESCAPE转码,编译成application/x-www-form-urlencoded的MIME类型;
4、根据method指定的请求模式提交任务。

下面的例子演示get模式的用法:

<go href="../news.asp" sendreferer="true" method="get">
  <postfield name="newstype" value="technology"/>
  <postfield name="newstext" value="wml"/>
</go>

服务器将收到这样的get请求:

GET ../news.asp?newstype=technology&newstext=wml HTTP/1.1
.
. 其他HTTP头信息
.

如果把前面的请求模式改成post,则同样的<go>任务产生的这样的post请求:

POST../news.asp HTTP/1.1
content-type="xxx-urlencoded" .
. 其他HTTP头信息
.
newstype=technology&newstext=wml


[] [返回上一页] [打 印] [收 藏]
下一篇文章:wap2.0技巧篇
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登录
Copyright © 2002-2005 wapkf.com. All Rights Reserved .
浙ICP备06013604号|站长QQ:274273595