WAP2.0(XHTML MP)基础介绍
(一)XHTML MP?介紹
XHTML MP(eXtensible HyperText Markup Language Mobile Profile)
WAP2.0與WCSS(WAP CSS /WAP Cascading Style Sheet)配套使用,是XHTML的子集。
XHTML Basic (XHTML子集)+另外的一些XHTML的元素和屬性
WAP瀏覽器與互聯網之間以前WAP網站(WML and WMLScript?)更多的展示表現(presentation control?)
XHTML MP?優勢:開發的站點可以在WEB和無線上都可以使用,也可以用任何Web瀏覽器訪問WAP2.0應用
向后兼容:XHTML MP / WCSS?和?WML / WMLScript?
(二)無線標記語言發展
HTML:WAP發展的首要任務——移動電話,PDA等訪問互聯網。WAP standard (WML and XHTML Mobile Profile)?類似HTML
WML(Wireless Markup Language)?1.x:WAP 1.x?規范中規定的標記語言,無線設備的第一個標記語言。Openwave、Nokia?和?Ericsson?很早都有自己的標記語言。WML規范是WAP Forum(97)創建的。而現在,很多的WAP站點依然使用的是WML。
XHTML:結構比HTML更簡潔和嚴格。這對于無線設備(例:移動電話)很重要,對于有限的處理能力。
XHTML Basic :是XHTML的一個簡化版本。為處理能力和性能有限的設備設計的(移動電話,PDA,呼機等)
但是不包含XHTML特性。例如CSS,frames和Scripting。是由W3C定義的。
XHTML MP:?在WAP2.0說明中指定的官方標記語言。WAP Forum?基于?XHTML Basic創造,并從XHTML的完整版本中增加了一些元素和屬性。例如<i>,<b>,<small>,<big>和<hr>。XHTML MP支持一個簡單的CSS版本,即WCSS/WAP CSS。
WCSS/WAP CSS: CSS2的一個簡化版本,增加了WAP特有的擴展。可以很簡單的改變XHTML MP頁面的布局和風格。
WML2.0: WAP站點開發者不需要顧慮WML2.0。WML2.0向后兼容,并且對于WAP站點開發者還不可用。
(三)XHTML MP的優點
最大優點:開發者可用相同的技術開發適用于WEB和WAP的站點。
有HTML、XHTML、CSS基礎即可入門。
同樣的開發工具可以用來開發WEB和WAP站點。
開發過程中一般的WEB瀏覽器可以瀏覽你的WAP站點。
HTML/XHTML頁面可以通過較小的修改成XHTML MP,甚至不用修改(注意:布局是否適應小屏幕,文件大小是否出最大)。
支持WCSS。移動設備有很多不同的特征,比如屏幕大小,只需寫一次結構,使用不同的WCSS文件即可。
更多的表現控制。
(四) 不支持的WML?特性
1、XHTML MP?不支持<deck>和<card>標簽。
???????在XML中,一個文件可以包含一個或更多的card,所有的card組合成一個deck,并在無線設備中一同被下載。WAP瀏覽器每次只顯示一個card,可以通過錨鏈接訪問其他的card。通過這些,減少了服務器的往返的訪問。對性能的提高是有意義的。在XHTML MP中要實現類似的特性,可以使用multipart messages(多個文檔放到一個請求)另外一個方式是使用目標錨(一個頁面的不同位置)。?
2、XHTML MP?不支持<timer>標簽
?????? <head> <meta http-equiv="refresh" content="10;URL=http://www.planabc.net/" /> </head>
?????? <meta>元素10秒后告訴WAP瀏覽器URL。
???????注意點:WML timer?僅當進入card,而HTML refresh timer當進入XHTML MP頁面。
3、?XHTML MP?不支持事件。
?????? WML支持四個事件(ontimer,onenterbackward,onenterforward,onpick),除ontimer其他事件無法模擬。如要使用,需使用WML1.X。
4、? XHTML MP?不支持變量。
???????在XML,可以聲明變量,并賦值,擁有全局作用域。可以在任何的deck和card中使用。XHML MP放在服務器端處理(必須發送并保存)。
5、? XHTML MP?不支持客戶端腳本。
?????????在XML,你可以使用客戶端腳本(WMLScript)。JavaScript的簡化版,常用來驗證數據。放在服務器短處理。將來的版本將會支持客戶端腳本(ECMAScript MP),支持所有的WMLScript功能。
6、?XHTML MP?不支持可編程序軟鍵(Programmable SoftKeys)。
?????? WML的一個最大特征。通過<do>標簽使用。在XHML MP中可以使用?accesskey?屬性。錨鏈接和提交按鈕支持這個屬性:
?????? <a accesskey="1" href="part1.xhtml">XHTML MP Tutorial Part 1</a
??????????? WCSS中的-wap-accesskey屬性也可以用來定義:a.wcss_class_1 {-wap-accesskey: 1}
7、XHTML MP?不支持<u>標簽。
???????在XML,<u>用來在一些文字下添加下劃線。可以用WCSS中的text-decoration屬性。
8、XHTML MP?不支持Input框的format屬性。
?????????在XML,可以定義類型和字數限制。可以使用WCSS中的-wap-input-format屬性,語法一致。比如限制5個數字字符:input {-wap-input-format:”5N”}
9、?XHTML MP?不支持錨鏈接傳輸數據。
?????? <p> 姓名: <input name=“name”/><br/> <anchor> <go method=“get”?href=“yuanxin.php”><postfield name=“name”?value=“$(name)”/></go> 提交 </anchor> </p>?
?????? <form action=“yuanxin.php”?method=“get”> ?????? <p>姓名: <input name=“name”/><br/><input type=“submit”?value=“提交"/></p> </form>
(五) 語法規則
標簽必須完全閉合。
標簽和屬性必須小寫。
屬性值必須包含在引號標記內。
不允許無屬性值存在。
標簽必須完全嵌套。
(六)MIME?類型和文件擴展名
MIME類型:?application/vnd.wap.xhtml+xml、application/xhtml+xml?、text/html。
動態生成MIME類型。獲得HTTP請求中的accept header信息。
文件擴展名:.xhtml、.html、.htm
(七)文檔結構
必須包含<html>, <head>, <title>和<body>?元素。
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
?????? <title>Hello world</title>
</head>
<body>
?????? <p>Hello world. Welcome to taobao.com.</p>
</body>
</html>
XML聲明和字符編碼:<?xml version="1.0" encoding="UTF-8"?>
?????? UTF-8/16編碼可省略。XML聲明也不是必須的,但如果忽略在許多WAP瀏覽器中出錯。
必須有DOCTYPE聲明。在XML聲明和<html>元素之間。
<html>、<head>、<link>、<title>、<body>
<p>元素,align屬性已經去除,可以通過WAP CSS的text-align屬性來設置。
(八)通用的元數據
使用<meta/>標簽,包含在<head>內
WAP瀏覽器如果不理解則忽略。
比如添加作者:<meta name="author" content=“yuanxin"/>?
Cache Control:<meta/>標簽的一個應用是控制XHTML MP文件在Cache中的存在周期:
?????? <meta http-equiv="Cache-Control" content="no-cache"/>?
?????? <meta http-equiv="Cache-Control" content="max-age=0"/>
????????注意點:與設備相關。一些使用不相的方法,一些沒有Cache機制。還有一些不支持<meta/>但識別Cache-Control:no-cache的HTTP頭。也可應用于圖片的緩存。
周期性刷新。必須配合使用。不是所有瀏覽器都支持。
?????? <meta http-equiv="Cache-Control" content="no-cache"/>?
?????? <meta http-equiv="refresh" content="15;URL=yuanxin.xhtml"/>?
(九)常用標簽介紹
注釋:<!-- -- >,和HTML和WML1.X相同。
換行:<br/>?,和HTML和WML1.X相同。
水平線:<hr/>。不能包含在<p></p>標簽之內。
標題:<h1>-<h6>(不同的大小和樣式),有些設備看起來一樣的。
字體樣式:XML可以使用標簽來改變字體樣式(?<b>、<i>、<small>、<big>等)。但一些瀏覽器只支持其中的部分,不支持的忽略,不會出錯。?WCSS?控制字體格式。
與格式化文本:在XHTML MP中,標簽間空白不顯示,此外,段落中2個或更多的空白只顯示一個,如果想保持文字的格式,可使用<pre>。?
列表:<ul>、<ol>、<li>。對于<ol>元素,可以用屬性?start?指定數字開始的序列。還可以用WCSS來做更精確的控制。
顯示圖片:<img>標簽用來顯示圖片。和HTML一樣。如果文件沒發現或者圖片格式不支持,顯示alt屬性文本。Height和width屬性來指定圖片顯示區域的高度和寬度。
除了老的WBMP圖片格式,WAP2.0還支持WEB上的圖片格式(gif, jpg和PNG),但WAP2.0無線設備支持上面圖片格式的某些。GPRS-gif,CDMA-png。可以通過accept HTTP header判斷設置。?
?????????關于大圖片的發布:很多WAP瀏覽器都沒有水平滾動功能。如果寬度大于顯示屏,很多的WAP瀏覽器會裁切圖片。圖片的按比例縮小不能幫助提升性能。大圖片還會造成訪問站點用戶的費用。
???????優化圖片:1、用制圖軟件按比例縮小圖片;2、如果是gif圖片,減少顏色,但降低了圖片質量,權衡。3、如果是jpg圖片,保存一定的壓縮比例,依然是權衡。
???????使用multipart messages,先下載的XHTML MP文檔,后請求圖片,產生多個請求。該方式可以使文檔和圖片在一個請求,意味著一個頁面只有一個請求。減少服務器的壓力。
表格:創建表格,需要使用<table>、<tr>、<td>標簽,默認表格沒有邊線。屬性有rowspan和colspan。
錨鏈接:一般用在導航。標簽為<a></a>。屬性href定義指定的URL。當前頁面位置的跳轉:先設置目標鏈接,通過id屬性設置;再設置錨鏈接的URL為#id名稱。
???????對錨鏈接設置快捷鍵:<a>標簽的accesskey屬性,有效的值為:*,#,0-9。還可以用-wap-accesskey設置。
選擇列表:選擇列表使用<select>標簽,包含一個或更多的<option>標簽。<select>標簽的name屬性定義選擇列表的名字。name用來取得被選擇的item的值(option的value屬性定義)。
?????? 1.???多重選擇列表:Option的selected屬性用來設置默認的option。如果想設置多重選擇列表,可使用<select>標簽的multiple屬性,只有一個唯一值‘multiple’。
?????? 2.?? Option分組:使用<optgroup>標簽,label屬性定義option組的名稱。
輸入元素:Text field、Password fireld、Checkbox、Radio button、Hidden field。通過<input>元素創建。傳輸數據到服務器,<input>元素必須和<form>一起使用。Type屬性用來定義input元素的類別。Name屬性用來定義名稱,方便取得用戶數據。
?????? <input type="text" name=“taobao" maxlength="16" value=“yuanxin"/>?
?????? input { -wap-input-format: "10N"}?
?????? <input type="password" name=“taobao"/>?
?????? <input type="checkbox" name=“taobao" value=“yuanxin" checked="checked"/>?
?????? <input type="radio" name=“taobao" value=“yuanxin" checked="checked"/>?
?????? <input type="hidden" name=“taobao" value=“yuanxin"/>
?? form元素:<input>、<select>等元素不能直接包含在form元素下,XHMTL MP標準規定必須有塊級元素。如果有non-ASCII字符,需使用POST方法來避免編碼問題。
?????? <form? method="get" action=“yuanxin.asp">??????? <p> ?????? ?????? <input ...> ????????????? <select ...>??????? </p> </form>?
提交按鈕:所有的表單都必須包含一個提交按鈕。<input>元素用來創建一個提交按鈕。而type屬性被定義為’submit’。
?????? <input type="submit" value="OK"/>????????
(九)常用標簽介紹
?重置按鈕:并不是必須的。<input>元素用來創建一個重置按鈕。而type屬性被定義為’reset’。
?????? <input type="reset" value="Default"/>
?Div和Span。
總結
以上是生活随笔為你收集整理的WAP2.0(XHTML MP)基础介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2013/12/25
- 下一篇: 转: Linux Grep 命令说明