用于wap的标记语言就是wml(wireless markup language)。 wml的语法跟xml一样,wml是xml的子集。 html、xml和wml的文件有很多相似之处,这样网页开发者在过去10年中所学的东西今天依然适用。 wml页面文件的后缀是 *.wml,就象html的 *.html后缀。 xml规定定义了一个规范的xml文件的规格。任何违反这个规定的wml文件会出错。wml文件通常使用xml解释器起来解释。 建立网页制作环境 wml文件本身就是文本文件,所以编辑不成问题,顺手的编辑器都可以用。 当然,由于目前的浏览器还都不能显示wml页面,而我们又不能总在手机上进行测试(速度太慢),所以需要模拟器。现在象nokia、ericsson、motorola等手机制造商都生产了相应的产品,你只要下载就行了。当然除了模拟器以外,还需要图形制作转换器(用来制作wap格式的图形文件)、字符转码器(汉字<=>unicode)等等,本站工具及论坛页面均有说明。 wml文件结构 wml的页面通常叫做桌面(deck),由一组互相链接的卡片(card)组成。当移动电话访问一个wml页面的时候,页面的所有card都会从wap服务器下载到设备里。card之间的切换由电话内置的计算机处理,不需要再到服务器上取信息了。card里可以包含文本、标记、链接、输入控制、任务(task)、图像等等。card之间可以互相链接。 文档的实体包含在...标记中,文档里每个card又包含在...标记中,然后实际的文字段落则包含在 ... 标记中。简单例子:
显示结果如下:
deck里面各个组成部分的具体解释在本教程的其他部分有说明。 wml字符集 wml是xml的子集,继承了xml的字符集设置。wml文档缺省的字符集是utf-8。 要显示中文,有两种办法。最简单的办法就是在文档头使用encoding,即把第一行改为:
然而令人丧气的是,这种方法有些手机和模拟器并不支持(将来会的),所以目前第2种方法更普遍:不改变字符集设置,但是在写中文的时候采用unicode代表中文字符,如:
代表:
wml元素:标记(tag)和属性 wml的主要内容是文本,由于标记会降低与手持设备的通讯速度,所以wml标准里仅仅使用了很少一部分。用于表格和图像的的标记几乎都被排除了。 与xml一样,在wml语言中,所有元素都放在符号""中,并且包含一个开始标志、一个结束标志和一个内容标志,或者使用自身结束的控制标记。就象这样:
wml同样支持在标志中标出属性。属性是标志的附加信息,与元素的内容不一样,它并不在屏幕上显示出来。属性通常在元素的开始标志后指定。如上面最后一个例子。 由于wml是xml的一种应用,因此所有的wml标记和属性都是大小写敏感的(跟完全不同),而且所有的标记都必须正确地结束。wml要求属性的值必须放在双引号或单引号内。单引号可放在属性标志内或双引号内。字符亦可作为属性的值。 这些注释在浏览器中并不显示出来。 wml不支持嵌套元素注释。 链接(url) wml外部引用方式跟html相同
内部引用,如果next是当前deck中的一个card时,可以用这种方式:
提供链接功能的wml元素有2个:(参见任务)和(参见事件)。
浏览器窗口将显示如下内容:
| |||||||||||
有了上面的基础,相信大家已经能够做不少事情了。现在我们来深入一下,看看如何提高性能和网络传输效率。首先,需要介绍一下http 1.1(rfc2616)的基础知识。当然,如果你已经很熟悉了,可以跳过第一部分。 一、http 1.1的简要介绍 http 1.1是一个基于文本的互联网实体信息交互主流协议,这里的实体可以是wap兼容浏览器之类的用户终端,可以是wap网关之类的代理服务器,也可以是java servlet之类的源服务器程序。它们之间的交互信息就是两大类:客户端对服务器端的请求(request)和服务器端对客户端的响应(response)。一次完整的交互包括一个请求和对它的响应。 所有的请求和响应都采用[rfc822]中定义的标准互联网消息格式,框架如下: * 消息定义 * 没有或多个消息头 * crlf(空行回车) * 可选的消息本体 其中消息定义不分指定了发送消息的类型。请求和响应都可以包含多个消息头,用来进一步或者重新定义用户终端和服务器之间的交互。crlf仅仅用来将信息定义和消息本体分开。 1、请求 在消息定义部分可以这样定义请求: 请求类型 url http/1.1 其中请求类型可以是下面的一种: ①. option:返回请求者和相应者之间可以使用的通信选项,主要用来检测服务器处理能力; ②. get:获得以url标示的文件内容或者程序执行结果。服务器根据文件名后缀判断服务内容,比如该url是静态文本还是一个程序; ③. head:除了不返回响应的信息本体以外,得到的是跟get一样的信息。一般用来测试链接的有效性、可达性和近期修改; ④. post:把消息本体中的消息发送到一个url或者其他类似的服务器端定义行为。通常用来提交一个html表单或者一些数据操作活动; ⑤. put:把消息本体中的消息发送到一个url,跟post类似,但不常用; ⑥. delete:删除url指定的资源; ⑦. trace:调用一个远程应用层请求消息回路。发出这个消息的用户终端除了收到原来的消息内容以外,还得到消息在internet上的传送路径。 最常用的请求类型--也是我们在处理wap应用时最关心的--是get和post。假设有一个wml文档,我们用up的浏览器去浏览的话,就会向服务器发出如下get请求: get www.itsalon.com/wap/index.wml http/1.1 accept-charset: utf-8 accept-language: ch accept: text/vnd.wap.wml, */*, image/bmp, text/html user-agent: up.browser/3.1-upg1 up.link/3.2 host: www.itsalon.net …… 其中粗体的部分是http消息头,这里我们忽略了一些与我们关系不大的消息头。 accept-charset: 用户终端支持的字符集 accept-language: 用户终端目前使用的语言 accept: 用户终端可以接受的mime文件类型 user-agent: 用户终端供应商提供的终端描述信息 host: 请求信息发送到的域名 |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-125142/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10294527/viewspace-125142/