• [WAP]WML学习笔记总结


     

    最近,由于工作上的需要,要从事手机版的开发工作,于是开始着手研究WML,由于有一定的HTML 与Javascript功底,所以WML要上手也是比较快的一件事,主要的学习资料来自:http://www.developershome.com/wap/wml/wmlIntro.asp

    WML是运行在手机浏览器上的页面语言,由于手机浏览器的一些限制,与HTML有一定的不同,在其上也是不能运行脚本语言的,不过有提供一定的WMLScript库可以使用,这个方面有待深入了解。

    首先,WML是严格遵守XML规范的,而且是大小写敏感的。对于不符合XML规范的页面不会容错显示,而是会直接报错,这一点上是与HTML比较大的不同。WML动作的机制中一个较大的特点是,它是由一个主体(desk)与若干片(card)组成的,每个WML收到的信息组成一个desk,在这个desk上面会有很多card,但是每次每个页面只会显示一个card ,在card 与card之间的切换是不需要再向服务器发请求的。通过这种机制可以加快了用户在一些页面跳转时候的灵活性与速度,但是却牺牲了导入整个desk的反应时间,在这两点上面需要做出一定的取舍。

    第二,WML中有一些tag是来自HTML的,功能基本类似,包括 img , table , td , tr ,head , meta等,基本用法是一样的,比较需要注意的是对于table的话,一定要有一个属性columns标识table中的列数。

    第三,相对于HTML而言,WML中增加了很多页面处理机制和相应的Tag,在这里一并总结一下。

    (1) 跳转,对于跳转,除了可以使用HTML中继承下来的<a>之外,还可以使用<anchor/>其中通过包括<go>来指定要跳转的页面,其中使用#来表示要跳到哪一个card上面。在<anchor>中加入<img>可以造成图片点击中转的效果。对于get , post 等方法的调用也会使用这个Tag ,使用这种方法,只需要在<go>中加入method与href属性即可。而form中属性的赋值则使用<postfield>来赋值。

    (2) 变量,在WML中是可以使用变量的,全部变量都是String型的,变量的作用域是全局的,即使页面已经跳转之后仍然会保留,而对于变量的赋值可以使用以下几种方法:

    <select><option> OR <input>

    <setvar name="var1" value="WML Tutorial"/>

    WMLBrowser.setVar("var1", "WML Tutorial");

    取变量值则使用$(Val)的方法。

    也因为变量的作用域是全局的,所以在发送完表单之后,要将表单的内容进行清空,或者在刚进入页面需要将变量初始化的时候,则需要使用<onevent>配合<refresh>和<setvar>来使用,<onevent>与<refresh>会在下面进行介绍。

    (3) 由于没有脚本语言的支持,因为WML定义了<onevent>来处理一定的事件,支持的事件包括:ontimeronenterbackward onenterforward ,onpick。其中, ontimer必须配合<timer value="XX">或者直接写成<card  ontimer="$(target)">。

    (4) 下面介绍最重要的一个应用<do>,是用来处理手机上几个键按下的事件的,主要支持的有accept , option , prev都是通过type来定义。如果需要在多个card上面使用同一类的 <do> 与 <onevent> 的话 ,可以使用template去定义,这样同一个desk中都会定义好了这些事件函数。而如果某个card需要不一样的函数的时候,可以在内部定义这样的函数来覆盖模版中的函数。

    (5) 最后,提两个输入的组件, 一个是<select>,

    <select name="selection_list" value="tutorial_B">

       <option value="tutorial_A">WML Tutorial A</option>

       <option value="tutorial_B">WML Tutorial B</option>

       <option value="tutorial_C">WML Tutorial C</option>

    </select>

    如果在select中定义了muliple属性为true的话,则该选单变为多选的,其中结果将以‘;’的形式将多个选项串在一起。

    另外一个重要的输入组件为<input>,用法:

    <input>:maxlength,value,type[text|password],format[http://www.developershome.com/wap/wml/wml_tutorial.asp?page=wmlInputFields3\,emptyok

    在WML下的编程应该有更多的模式与技巧,需要更深入的理解,在这里只是就WML的语法与HTML进行了对比型的分析,更多的经验需要在实际开发中体会。

  • 相关阅读:
    .net软件反编译笔记
    Asp.Net 网站一键部署技术(上)
    C# TreeGridView 实现进程列表
    HeidiSQL Navicat
    Flask项目中邮箱模块的应用
    如何在已有的Flask项目添加数据表结构?
    把u盘刻录成系统盘
    Object '<Tbl_next_week_change_state at 0x7f2c78d849e8>' is already attached to session '4' (this is '6')
    OSError: [Errno 98] Address already in use
    Linux下设置和查看环境变量
  • 原文地址:https://www.cnblogs.com/liangxing/p/1617687.html
Copyright © 2020-2023  润新知