一些 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 语言的特征:

XHTML MP 不支持 Deck 与 Card
XHTML MP 不支持计时器
XHTML MP 不支持事件
XHTML MP 不支持变量
XHTML MP 不支持客户端脚本
XHTML MP 不支持对软键 (accesskey) 编程
XHTML MP 不支持 <u> 标签
XHTML MP 的输入字段不支持格式化属性
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>

wap1.x和wap2.0的区别相关推荐

  1. CDMA 1X WAP2.0业务网 设备实施规范 (V1.0)

    CDMA 1X WAP2.0业务网 设备实施规范 (V1.0) 前 言: 近10年以来,移动通信(包括数据和语音)和Internet几乎成为了在全世界范围内发展最快,最具活力的两项技术.而Intern ...

  2. CDMA 1X通信网 WAP2.0业务技术体制 (V1.0)

    CDMA 1X通信网 WAP2.0业务技术体制 (V1.0) 前 言 近10年以来,移动通信(包括数据和语音)和Internet几乎成为了在全世界范围内发展最快,最具活力的两项技术.而Internet ...

  3. WAP1.1、WAP1.2和WAP最新版本WAP2.0区别分析

    现在主要的设备和应用或多或少的遵循WAP 1.1协议.WAP Forum 已经发布了WAP 1.2 ,里面没有太多值得注意的不同.毕竟一个协议不能进化得太快.     总的来说,WAP 1.2中有以下 ...

  4. WAP2.0开发规范及原则

    来源:http://www.html5china.com/js/jsadv/20111120_2711.html  一.WAP简介:       WAP(Wireless Application Pr ...

  5. WAP2.0手机网站的开发

    前一阵帮着学校开发了WAP2.0的手机版学校首页.http://wap.chd.edu.cn 从零基础入门,总体来说上手还是挺容易的,现在就来写一写关于我在wap2.0开发中遇到的问题,一来记录一下自 ...

  6. php wap 2.0,WAP2.0网站分类及其架构浅析

    一.WAP 2.0 简介 所谓WAP(Wireless Application Protocol,无线通讯协议)是在数字移动电话.因特网或其他个人数字助理机.计算机应用之间进行通讯的开放全球标准[1] ...

  7. wap2.0技术开发基础XHTML MP

    我们通常用电脑访问的网站的网页是用html构建的.类似的,现在WAP 2.0网站是用XHTML MP. 一:XHTML MP的语法规则我们知道,我们通常用电脑访问的网站的网页是用html构建的.类似的 ...

  8. xhmtlMP基础(wap2.0开发)

    一:XHTML MP的语法规则 我们知道,我们通常用电脑访问的网站的网页是用html构建的.类似的,现在WAP 2.0网站是用XHTML MP 构建,以供手持设备的访问,如手机.PDA等. XHTML ...

  9. xhmtlMP基础(wap2.0开发)转

    一:XHTML MP的语法规则 我们知道,我们通常用电脑访问的网站的网页是用html构建的.类似的,现在WAP 2.0网站是用XHTML MP 构建,以供手持设备的访问,如手机.PDA等. XHTML ...

  10. wap2.0技术开发基础

    为什么80%的码农都做不了架构师?>>>    我们通常用电脑访问的网站的网页是用html构建的.类似的,现在WAP 2.0网站是用XHTML MP. 一:XHTML MP的语法规则 ...

最新文章

  1. 第一节 HTML DOM
  2. 【正一专栏】读《摆渡人》——原来你在这里
  3. centos安装xrdp实现远程桌面访问
  4. JSP中的forward指令
  5. 在js在页面中添加百度统计代码
  6. 基于 axios 的 Vue 项目 http 请求优化
  7. Hystrix面试 - 基于 request cache 请求缓存技术优化批量商品数据查询接口
  8. js indexOf()
  9. 第五章 列表、元组和字符串[DDT书本学习 小甲鱼]【8】
  10. python3捕获异常_Python 异常处理和捕获信息教程|python3教程|python入门|python教程
  11. B2B2C商城系统源码 多商户商城源码 Wap+App+小程序源码
  12. 好用的安卓手机投屏电脑软件
  13. 施德来:有赞电商小程序的实践
  14. 使用vue+div+svg实现审批流程图功能,可生成JSON格式
  15. 【汇编作业记录Proteus8+keil5 作业 2】
  16. https://wenku.baidu.com/view/24def725e53a580217fcf
  17. git 强制切换分支
  18. 专访 | 快手王仲远:技术创业不要拿着锤子找钉子
  19. (七)Linux搭载4G模块——AT指令实现短信包的获取和删除
  20. c函数itoa和atoi实现

热门文章

  1. 如何在教学中利用计算机网络,教师论苑(二十二)| 利用XMind思维导图优化计算机网络基础课堂教学...
  2. 如何筹办一场千人技术峰会?
  3. VC6的fatal error C1010解决办法
  4. 1000以内完数c语言程序_求1000以内完数 c语言 。。
  5. wordpress登录美化css,wordpress后台login界面美化
  6. laravel文件上传与下载
  7. proteus部分元件中英对照
  8. ajax性能测试脚本,mqtt性能测试工具
  9. 保定工程技术学校网络计算机,保定工程技术学校2021年有哪些专业
  10. 身份证号码15位转18位