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站點開發者還不可用。php

(三)XHTML MP的優勢
最大優勢:開發者可用相同的技術開發適用於WEB和WAP的站點。
有HTML、XHTML、CSS基礎便可入門。
一樣的開發工具能夠用來開發WEB和WAP站點。
開發過程當中通常的WEB瀏覽器能夠瀏覽你的WAP站點。
HTML/XHTML頁面能夠經過較小的修改爲XHTML MP,甚至不用修改(注意:佈局是否適應小屏幕,文件大小是否出最大)。
支持WCSS。移動設備有不少不一樣的特徵,好比屏幕大小,只需寫一次結構,使用不一樣的WCSS文件便可。
更多的表現控制。css

(四) 不支持的WML 特性
一、XHTML MP 不支持<deck>和<card>標籤。
       在XML中,一個文件能夠包含一個或更多的card,全部的card組合成一個deck,並在無線設備中一同被下載。WAP瀏覽器每次只顯示一個card,能夠經過錨連接訪問其餘的card。經過這些,減小了服務器的往返的訪問。對性能的提升是有意義的。在XHTML MP中要實現相似的特性,可使用multipart messages(多個文檔放到一個請求)另一個方式是使用目標錨(一個頁面的不一樣位置)。 
二、XHTML MP 不支持<timer>標籤
       <head> &nbsp;&nbsp;<meta http-equiv="refresh" content="10;URL=http://www.planabc.net/" /> </head>
       <meta>元素10秒後告訴WAP瀏覽器URL。
       注意點:WML timer 僅當進入card,而HTML refresh timer當進入XHTML MP頁面。
三、 XHTML MP 不支持事件。
       WML支持四個事件(ontimer,onenterbackward,onenterforward,onpick),除ontimer其餘事件沒法模擬。如要使用,需使用WML1.X。
四、  XHTML MP 不支持變量。
       在XML,能夠聲明變量,並賦值,擁有全局做用域。能夠在任何的deck和card中使用。XHML MP放在服務器端處理(必須發送並保存)。
五、  XHTML MP 不支持客戶端腳本。
         在XML,你可使用客戶端腳本(WMLScript)。JavaScript的簡化版,經常使用來驗證數據。放在服務器短處理。未來的版本將會支持客戶端腳本(ECMAScript MP),支持全部的WMLScript功能。
六、 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}
七、XHTML MP 不支持<u>標籤。
       在XML,<u>用來在一些文字下添加下劃線。能夠用WCSS中的text-decoration屬性。
八、XHTML MP 不支持Input框的format屬性。
         在XML,能夠定義類型和字數限制。可使用WCSS中的-wap-input-format屬性,語法一致。好比限制5個數字字符:input {-wap-input-format:」5N」}
九、 XHTML MP 不支持錨連接傳輸數據。
       <p> &nbsp;&nbsp;姓名:&nbsp;&nbsp;<input name=「name」/><br/> &nbsp;<anchor> <go method=「get」 href=「yuanxin.php」><postfield name=「name」 value=「$(name)」/></go> &nbsp;提交&nbsp;&nbsp;</anchor> </p> 
       <form action=「yuanxin.php」 method=「get」> &nbsp;       <p>姓名:&nbsp;&nbsp;&nbsp;&nbsp;<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、.htmhtml

(七)文檔結構
必須包含<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瀏覽器會裁切圖片。圖片的按比例縮小不能幫助提高性能。大圖片還會形成訪問站點用戶的費用。
       優化圖片:一、用製圖軟件按比例縮小圖片;二、若是是gif圖片,減小顏色,但下降了圖片質量,權衡。三、若是是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> &nbsp;&nbsp;&nbsp;       &nbsp;       <input ...> &nbsp;&nbsp;&nbsp;&nbsp;              <select ...>        </p> </form> 
提交按鈕:全部的表單都必須包含一個提交按鈕。<input>元素用來建立一個提交按鈕。而type屬性被定義爲’submit’。
       <input type="submit" value="OK"/>        
(九)經常使用標籤介紹
 重置按鈕:並非必須的。<input>元素用來建立一個重置按鈕。而type屬性被定義爲’reset’。
       <input type="reset" value="Default"/>
 Div和Span。app

相關文章
相關標籤/搜索