精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程
返回建站学首页
导航:
建站首页 | 网站设计 | 网站开发 | 网站运营 | 网页软件 | 建站指南 | 搜索优化 | 图像处理 | 视频教程 | 书籍教程 | 建站专题
当前位置:首页>网站开发>xml教程>正文

如何创建WML电话薄(一)


来源: 时间:07-02-12 点击: 点击这里收藏本文

移动设备很快将成为信息共享的一种方式之一。但其中的一个问题是移动设备无法获得同标准桌面计算机类似的电源功率。本来个性化网站是可以通过使用大量图像和JavaScript轻松实现的,而移动设备的这个缺点限制了对个性化网站的开发。但是通过无线标记语言Wireless Markup Language (WML)和细致地规划,你就能创建一个完美的无线解决方案。

WML是如何工作的

WML是基于deck-of-cards(一套纸牌)的原理,即类似于在一套纸牌中控制数量一定纸牌的方式来管理服务的。当移动设备请求WAP服务器时,它是针对整套卡片组的(类似于一套纸牌)而不是某一个页面(类似于某张纸牌)发出请求。整套卡片组都被装载到移动设备中,用户可以在卡片之间进行浏览,而无需向服务器发出另一次请求。

除了WML基于XML 1.0标准这一特点之外,WML类似于HTML。所以此标准也决定了标记符(tags)是区分大小写,同时所有的标记符需要对应的结束标记。区别是WML比HTML更加严格,它只有一套小型的合法标记符。对表格和图像的运用限制条件都比HTML更苛刻。

创建解决方案

首先指出的是你将向用户提供何种功能。并明确在不会大量增加数据传输量的情况下应当为无线解决方案增加多少信息。同样,也要考虑到用户是根据使用时间来付费的。

就我自己而言,我希望用户可以根据姓氏、名、住址,或部门来查看雇员信息。对于按照姓氏或者名来查看而言,只需要用户输入所要查找雇员的姓或名即可。但对于住址或部门,用户应当得到一个选项列表。

基于WML 1.1标准的WML文件开头如下:

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

此代码指定了这是一个XML文档,并且属于WML类型。一套卡片组由以下代码组成:

. . .
<wml>
<card/>
</wml>
现在开始我们的第一套卡片组:

. . .
<wml>
<card id="main" title="Directory" newcontext="true">
<p>
Search By...<br/>
<anchor>Last Name
<go href="#ln"/>
</anchor><br/>
<anchor>First Name
<go href="#fn"/>
</anchor><br/>
<anchor>Location
<go href="search.asp" method="post">
<postfield name="qt" value="loc"/>
<postfield name="qv" value=""/>
</go>
</anchor><br/>
<anchor>Department
<go href="search.asp" method="post">
<postfield name="qt" value="dpt"/>
<postfield name="qv" value=""/>
</go>
</anchor><br/>
</p>
</card>

<card id="ln" title="Last Name">
<p>
Enter Last Name:<br/>
<input name="qv"/>
</p>
<p>
<anchor>Submit
<go href="search.asp" method="post">
<postfield name="qt" value="ln"/>
<postfield name="qv" value="$qv"/>
</go>
</anchor>
</p>
</card>

<card id="fn" title="First Name">
<p>
Enter First Name:<br/>
<input name="qv"/>
</p>
<p>
<anchor>Submit
<go href="search.asp" method="post">
<postfield name="qt" value="fn"/>
<postfield name="qv" value="$qv"/>
</go>
</anchor>
</p>
</card>

</wml>

代码是怎样创建的

当第一个电话卡片显示在电话上时,还将同时显示一份查找选项列表。每一个选项都使用<anchor>以及相关联的 <go>标记符。标记符<go>通知微浏览器应该转到什么地方,任何以#符号开始的href将引用到当前卡片组中的另一电话卡片中去。否则将引用到其他的WML文件中去。

当点击姓或名后,微浏览器将把当前状态引导到相关电话卡片。但如果点击的是住址或者部门,微浏览器将请求WML将当前状态定位于“search.asp”。这是必须的,因为我们需要向用户提供住址或部门的列表,并以此作为用户可选择的查找标准。将二者独立开来的原因是电话的资源非常有限,没有理由在电话里面保存可有可无的数据。如果用户选择住址或部门,我们可以随时提供这些数据。

姓和名卡片包括了<input>元素和另一个<anchor>元素,通过它们来向服务器提交查找数据。如果你注意到姓和名中的<go>元素,还可以看到一些被用来向服务器发送数据的<postfield>元素。这是区别于普通HTML页面工作方式的显著的不同点。当你希望将数据提交给服务器时,创建一个<postfield>元素并通过使用WML变量来设置它的值。你可以看到"qv" <postfield>元素的值被设置为"$qv"。你可以使用这种方式来引用这些变量。

一旦获得了必须的数据,通过<go>元素再将数据返回到服务器。这是借助<go>的元素方法属性来以post data方式提交数据的极好实例。

在下一部分中,我将收集数据并同时提供一个返回的WML页面来提供地址和部门,这个页面中还提供了根据搜索条件而得到的结果清单。点击结果清单上的元素将返回详细电话薄入口的全部信息。


Phillip Perkins是服务于Ajilon Consulting的技术专家,他的工作经历包括机械控制、客户服务,以及企业内部网应用程序等。 


 

  把此文章收藏到:          
广而告之
文章搜索
  • Google JZxue.Com

关于我们 | 联系我们 | 友情链接 | 网站地图
Copyright © 2005 - 2006 建站学 All rights reserved.