zoukankan      html  css  js  c++  java
  • [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进行了对比型的分析,更多的经验需要在实际开发中体会。

  • 相关阅读:
    LeetCode 81 Search in Rotated Sorted Array II(循环有序数组中的查找问题)
    LeetCode 80 Remove Duplicates from Sorted Array II(移除数组中出现两次以上的元素)
    LeetCode 79 Word Search(单词查找)
    LeetCode 78 Subsets (所有子集)
    LeetCode 77 Combinations(排列组合)
    LeetCode 50 Pow(x, n) (实现幂运算)
    LeetCode 49 Group Anagrams(字符串分组)
    LeetCode 48 Rotate Image(2D图像旋转问题)
    LeetCode 47 Permutations II(全排列)
    LeetCode 46 Permutations(全排列问题)
  • 原文地址:https://www.cnblogs.com/liangxing/p/1617687.html
Copyright © 2011-2022 走看看