`
sweetbox1519
  • 浏览: 12441 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

XHTML MP所失去的WML的特征

    博客分类:
  • WAP
阅读更多

一些 WML 1.x 中可用的特征在 XHTML MP 中已经不存在了. 在这一部分中, 你将学到 WML 1.x 与 XHTML MP 之间的这些区别. 这一部分对于那些熟悉 WML 但对于 XHTML MP 来说是新手的人, 或者那些想把他们的移动因特网应用从 WML 1.x 迁移到 XHTML MP的人来说, 特别有用.

尽管失去了 WML 的一些特征, 在 XHTML MP 中还是有实现类似效果的方法的. 应该注意到, WAP 2.0 对 WML 1.x 是后向兼容的, 这就意味着 WAP 2.0 移动设备能够显示 WML 1.x 文档. 如果你必须要使用一个在 WML 中有效但在 XHTML MP 中无效的特征, 那么你可以考虑用 WML 1.x 开发你的 WAP 应用.

这些是 XHTML MP 所丢失的主要的 WML 语言的特征:

  1. XHTML MP 不支持 Deck 与 Card
  2. XHTML MP 不支持计时器
  3. XHTML MP 不支持事件
  4. XHTML MP 不支持变量
  5. XHTML MP 不支持客户端脚本
  6. XHTML MP 不支持对软键 (accesskey) 编程
  7. XHTML MP 不支持 <u> 标签
  8. XHTML MP 的输入字段不支持格式化属性
  9. XHTML MP 不支持用锚链接发送数据

XHTML MP 不支持 Deck 与 Card

WML 中的 <deck> 和 <card> 元素在 XHTML MP 中已经不存在了. 在 WML 中, 一个文件可以包含一张或多张 card. 它们共同形成了一个 deck. 一个 deck 中所有的 card 都会被一次下载到无线设备上. WAP 浏览器一次显示一张 card , 你可以通过锚链接去其它卡片. 通过使用 deck 和 card, 与服务器的交互得以减少. 从而可能会有很大的性能提高, 因为对无线设备来说, 每次对服务器的请求的滞后性很高.

要在 XHTML MP 中达到类似的功能, 你可以把消息分成多个部分 (多个文档放到一个 HTTP 反馈中). 另一种方式是通过利用目标锚 (目标锚放到页面中的各个位置, 并且将链接定义为流动到相应的目标锚. 更多细节将稍后在 "到当前 XHTML MP 页面的某个地方" 中提到).

XHTML MP 不支持计时器

要在 WML 中使用计时器, 你可以用 <timer> 标签和 ontimer 事件. <timer> 标签和 ontimer 事件在 XHTML MP 中都不被支持.

要在 XHTML MP 中实现类似的功能, 尝试一下 HTTP 刷新, 像这样:

<head>
<meta http-equiv="refresh" content="5;URL=http://www.phparch.cn/" />
...
</head>

 

在上面的 XHTML MP 例子中, <meta> 元素告诉 WAP 浏览器10秒后转到 URL "http://www.phparch.cn". 要注意的是 WML 计时器只有在用户前进到卡片 (card) 时才会开启, 而 HTTP 刷新计时器无论用户何时到达 XHTML MP 页面都会开启.

关于 HTTP 刷新的更多细节将在稍后的 "XHTML MP 中的间歇性刷新" 中提到.

XHTML MP 不支持事件

XHTML MP 不支持事件. WML 支持四种事件: ontimer, onenterbackward, onenterforward 和 onpick. 就像在上一部分讨论的那样, HTTP 刷新可以模拟 ontimer 事件. 对于其它事件类型, 在 XHTML MP 中没有替代方案. 如果你的移动因特网浏览应用必须用到它们, 那么你不得不考虑用 WML 1.x 取代 XHTML MP.

XHTML MP 不支持变量

在 WML 中, 你可以声明变量并对其赋值. WML 的变量都具有全局范围, 也就意味着你可以在任何 deck 与 card 标签中使用它们. 在 WML 中常见的对变量的使用是用其存储用户输入的数据以免其稍后还要再次输入.

在 XHTML MP 中你无法使用变量. 替代方案是把所有的处理放在服务器端进行. 例如, 如果你想把用户在某一 XHTML MP 页面上输入的数据共享到其它 XHTML MP 页面, 就要把数据发送到并存储在服务器上. 然后服务器可以在必要的时候把用户数据嵌入到 XHTML MP 标记中, 并将其发送到无线设备.

XHTML MP 不支持客户端脚本

在 WML 中, 你可以用一种叫作 WMLScript 的脚本语言, 该语言与 JavaScript 类似. WMLScript 在 WML 中的一种常见应用是验证用户输入的数据.

对于 XHTML MP, 客户端脚本目前是无效的. 替代方案是把所有的处理放在服务器端进行. 例如, 可以把用户数据发送到服务器端处理, 而不是在无线设备上验证用户数据. 如果用户数据格式有误, 超出了有效范围, 或者用户忘记输入某些字段, 服务器会引导用户去一个 XHTML MP 页面来纠正数据.

将来的移动设备将支持一种叫作 ECMAScript 移动概要 (ESMP) 的客户端脚本语言, 该语言被设计用于 XHTML MP 之中. 它支持所有 WMLScript 功能.

XHTML MP 不支持对软键 (softkey) 编程

 可编程软件是 WML 的一个非常棒的特征. WML 的 <do> 标签可以用来对软键编程. 用户可以通过按移动电话上的左软键或右软键非常方便地选择常用选项.

在 XHTML MP 中你无法对软键编程. 一种替代方案是利用 accesskey 属性. accesskey 属性可用于指定键盘快捷键. 锚链接和提交按纽支持 accesskey 属性. 这是一个例子:

<a accesskey="1" href="/p1.xhtml">XHTML MP 教程第一部分</a><br/>
<a accesskey="2" href="/p2.xhtml">XHTML MP 教程第二部分</a><br/>
<a accesskey="3" href="/p3.xhtml">XHTML MP 教程第三部分</a>

 

如果用户按下键盘上的 "1" 键, WAP 浏览器将直接跳转到 "p1.xhtml". 有了 accesskey 属性, 用户能够通过在 XHTML MP 页面中点击一下就触发某个动作. 这种行为与通过软键所能实现的类似.

WAP CSS 的 -wap-accesskey 属性可用 accesskey 属性的一个替代选项.

在一些诺基亚的 WAP 浏览器上, 所有带有 accesskey 属性指定的键盘快捷键的锚链接和提交按纽都会自动被包含在选项菜单中. 用户可以通过点击左侧的软键来打开选项菜单. 选项菜单中锚链接的标签是被 <a></a> 标签所包围的文本. 对于图片链接和提交按纽, 菜单选项中的标签分别是 <img> 标签的 alt 属性值和 <input> 标签的 value 属性值. 例如:

<a accesskey="0" href="/p1.xhtml">XHTML MP 教程第一部分</a><br/>
<a accesskey="1" href="/p2.xhtml">
  <img src="/pic2.gif" height="20" width="20" alt="XHTML MP 教程第二部分" />
</a><br/>

<form action="xhtml_mp_tut.php" method="get">
  <p>
    你最喜欢本 HTML MP 教程的哪一部分?<br/>
    <input type="text" name="tut_part" title="编辑" /><br/>
    <input accesskey="5" type="submit" value="提交表单" />
  </p>
</form>

 

在上述 XHTML MP 例子中, 粗体文本在 "选项" 菜单中将变成标签. 如果太长的标签将会被截断.

要注意的是该特征在非诺基亚浏览器上是无效的.

XHTML MP 不支持 <u> 标签

在 WML 中, 标签 <u> 可用来对某些文本加下划线.

标签 <u> 在 XHTML MP 中是不存在的. 要想在 XHTML MP 中对文本加下划线, 你得用 WAP CSS 的 text-decoration 属性. 例如, 要想给所有标题1的文本加下划线, 你可以在你的 XHTML MP 页面的 WAP CSS 样式单中加入输入如下的样式表述:

h1 {
  text-decoration: underline
}

 

XHTML MP 的输入字段不支持格式化属性

在 WML 中, 你可以通过对 <input> 元素的格式属性指定值来限制用户可以在某输入字段中可输入的字符类型和数量.

在 XHTML MP 中, <input> 元素的格式属性已经被删除了. 替代方案是利用 WAP CSS 的 -wap-input-format 属性. -wap-input-format 属性采用了与格式化属性有着相同语法的输入遮罩. 举个例子, 要限制所有输入字段只接受五位数字, 你可以在你的 XHTML MP 页面的 WAP CSS 中输入下面这段样式表述:

input {
  -wap-input-format: "5N"
}

 

你可以从网上找到关于 -wap-input-format 属性的更多资料.

XHTML MP 不支持用锚链接发送数据

在 WML 中, 向服务器提交用户数据是通过锚链接实现的, 像这样:

<p>
  你叫什么名字?
  <input name="name"/><br />
   你最喜欢本 HTML MP 教程的哪一部分?
  <input name="tut_part"/><br />
  <anchor>
    <go method="get" href="/xhtml_mp_tut.php">
      <postfield name="name" value="$(name)" />
      <postfield name="tut_part" value="$(tut_part)" />
    </go>
    发送数据
  </anchor>
</p>

 

XHTML MP 不支持通过锚链接发送数据. 必须用提交按纽实现. 下面这段 XHTML MP 标记与前面的 WML 标记做的是同一件事. 关于向服务器提交数据的进一步细节将会在此教程的 "在 XHTML MP 中向服务器提交表单数据" 中讲述.

<form action="xhtml_mp_tut.php" method="get">
  <p>
    你叫什么名字?<br />
    <input name="name" /><br />
      你最喜欢本 HTML MP 教程的哪一部分?<br />
    <input name="part"/><br />
    <input type="submit" value="提交数据" />
  </p>
</form>

 

分享到:
评论

相关推荐

    wml_xhtmlMP中文手册

    wml_xhtmlMP中文手册,wml_xhtmlMP中文手册,wml_xhtmlMP中文手册

    (XHTML MP) / WAP 2.0 教程

    本 XHTML MP 教程从对 XHTML MP 的介绍和各种标记语言, 如 WML, XHTML, XHTML Basic 和 XHTML MP, 之间的关系概览着手. 讲述了 WML 与 XHTML MP 的主要区别, XHTML MP 的语法规则和文档结构等等. 另外, 本 XHTML MP...

    XHTML 移动概要 (XHTML MP)-WAP 2.0 教程

    本 XHTML MP 教程从对 XHTML MP 的介绍和各种标记语言, 如 WML, XHTML, XHTML Basic 和 XHTML MP, 之间的关系概览着手. 讲述了 WML 与 XHTML MP 的主要区别, XHTML MP 的语法规则和文档结构等等. 另外, 本 XHTML MP...

    XHTML+移动概要+(XHTML+MP)-WAP+2[1].0+教程.chm

    本 XHTML MP 教程从对 XHTML MP 的介绍和各种标记语言, 如 WML, XHTML, XHTML Basic 和 XHTML MP, 之间的关系概览着手. 讲述了 WML 与 XHTML MP 的主要区别, XHTML MP 的语法规则和文档结构等等. 另外, 本 XHTML MP...

    wap2.0初探索XHTML MP、WCSS

    XHTML MP(eXtensible HyperText Markup Language Mobile Profile) WAP2.0 与WCSS(WAP CSS /WAP Cascading Style Sheet)配套使用 是XHTML的子集 ...向后兼容:XHTML MP / WCSS 和 WML / WMLScript

    最新的WAP浏览器,支持WML和XHTML MP

    最新的WAP浏览器,支持WML和XHTML MP页面浏览,可以看腾讯网哦。

    WAP 2.0 教程

    本 XHTML MP 教程从对 XHTML MP 的介绍和各种标记语言, 如 WML, XHTML, XHTML Basic 和 XHTML MP, 之间的关系概览着手. 讲述了 WML 与 XHTML MP 的主要区别, XHTML MP 的语法规则和文档结构等等. 另外, 本 XHTML MP...

    Series 60 Developer Platform: 设计XHTML MP 内容

    对于想用XHTML MP 来为诺基亚Series 60 双模...Series 60 浏览器除支持XHTML MP 外,还支持WML。本文读者 包括服务开发人员,以及那些参与创建无线信息社会的人员,他们需要了解更多有关在移动终端 创建服务的信息。

    quickwap xml组件

     使用QuickWAP组件编写WAP网页程序,不仅运行稳定,处理速度也会比相同功能的ASP+XHTML MP网页程序要快很多倍,功能容易得到扩展,而且支持QuickWAP+ASP+WML或QuickWAP+ASP+XHTML一起使用进行WAP程序开发。...

    wap源码,quickWAP XML软件

    QuickWAP XML是一款以WAP2.0协议为基础开发的辅助ASP+XHTML MP语言编写WAP网页程序的ActiveX组件。它解决了WAP开发中所遇到的常见问题,并且给出了完善的解决方案,同时全力支持Microsoft SQL Server2000和Microsoft...

    WAP设计原则及标准

    XHTML MP 和CSS的引入创建了多种新的用户界面结构。XHTML MP包含的元素比WML多,并且利用CSS,可以通过多种方法修改元素的可视化显示。

    WAP2.0开发简要

    XHTML MP(eXtensible HyperText Markup Language Mobile Profile) WAP2.0 与WCSS(WAP CSS /WAP Cascading Style Sheet)配套使用 是XHTML的子集 XHTML Basic (XHTML子集)+另外的一些XHTML的元素和属性 WAP浏览器...

    WAP2.0---PPT版的教程

    XHTML MP(eXtensible HyperText Markup Language Mobile Profile) WAP2.0 与WCSS(WAP CSS /WAP Cascading Style Sheet)配套使用 是XHTML的子集 XHTML Basic (XHTML子集)+另外的一些XHTML的元素和属性 WAP浏览器...

    wap2.0简介

    XHTML MP(eXtensible HyperText Markup Language Mobile Profile) WAP2.0 与WCSS(WAP CSS /WAP Cascading Style Sheet)配套使用 是XHTML的子集 XHTML Basic (XHTML子集)+另外的一些XHTML的元素和属性 WAP浏览器...

    无线Web页面事件机制调研

    在无线网络发展初期,为了适合于无线网络的传输以及狭小屏幕上的显示,WAP forum定义了一整套的协议,比如WTCP,WDP,WSP,WTP,WML等等,在那时,无线网络和互联网之间几乎是隔绝的,一个网站如果要同时供给互联网...

    GeeksXmlKit-开源

    Geeks XML Kit是一个ASP.NET 2.0 HttpHandler,可以使用XSL转换从XML文件生成任何XML内容(包括但不限于XHTML,XHTML-MP,WML,RSS,SVG)。 它以某种方式受到AxKit项目(http://axkit.org)的启发。

    动易内容管理系统WAP2.0适配程序

     QuickWAP的开发集成了微软的ASP、VB、ActiveX、Windows2003(2007)、IIS6.0(5.0)、Access、MSSQL2000(2005)、SQL和WAP的WML、XHTML MP语言,以及ASPJPEG、JMail组件、CSS语言等技术于一体,其中以微软的各种技术为...

    动易SiteWeaver内容管理系统WAP2.0适配程序 V1.0.rar

     QuickWAP的开发集成了微软的ASP、VB、ActiveX、Windows2003(2007)、IIS6.0(5.0)、Access、MSSQL2000(2005)、SQL和WAP的WML、XHTML MP语言,以及ASPJPEG、JMail组件、CSS语言等技术于一体,其中以微软的各种技术为...

    文件下载及web文件的contentType类型大全

    String filePath=""; File file=new File(filePath); //解决乱码问题 String filename=URLEncoder.encode(file.getName(),"utf-8"); ...Response.AddHeader("Content-Disposition", "attachment;...

Global site tag (gtag.js) - Google Analytics