XHTML MP中不再使用的WML屬性

一些 WML 1.x中的特徵在XHTML MP中不再使用,在這節你可以學到WML 1.x和XHTML MP的區別。這節對以前是用WML 1.x開發,現在開始採用XHTML MP開發的人比較有用,或者對從WML 1.x的移動互相網應用程序提升到XHTML MP提供參考。
 
對於一些失去的WML的功能,在XHTML MP中有類似的實現方法。需要指出的是,WAP2.0是向後兼容WML1.x的,就是說支持WAP 2.0的設備,也可以正常查看WML 1.x的文檔。如果有在 WML中有的功能,但在XHTML MP中沒有的,而你又要用到的,那麼你可以用WML 1.X來開發,因爲支持WAP2.0的設備同樣可以正常顯示WML 1.x開發的文檔。
 
以下是在XHTML MP中不再有的WML功能
  1. XHTML MP不支持decks 和cards
  2. XHTML MP不支持timers
  3. XHTML MP不支持事件Events
  4. XHTML MP不支持變量
  5. XHTML MP不支持客戶端腳本
  6. XHTML MP不支持可編程序軟鍵(Programmable SoftKeys)
  7. XHTML MP不支持<u>標籤
  8. XHTML MP不支持Input框的format屬性
  9. XHTML MP 不支持錨點傳輸數據

XHTML MP不支持decks和cards

 
WML中的<deck>和<card>標籤在XHTML MP中不再存在。在WML中,一個文件可以有一個或多個cards,所有的cards組合成deck,所有deck中的cards會同一時間一起下載到移動設備中,WAP瀏覽器一次顯示一個card,可以使用錨鏈接,鏈接到其他的card。通過使用cards和decks,可以減少服務器的往返次數,可以顯著的提高性能,因爲無線設備到服務器的每個請求的延遲是比較高的。
 
在XHTML MP中要實現類似的功能,您可以使用多重消息(多個文檔放到一個HTTP響應中),另外一種方法是使用錨點的方法。(目標錨點放到一個頁面的不同地方)
 

XHTML MP不支持timers

 
在WML中創建一個定時器,使用<timer>標籤和onTimer事件。在XHTML MP中不支持<timer>標籤和onTimer事件。
 
在XHTML MP中要實現類似的功能,可以嘗試使用HTTP refresh,像這樣:
 
 
1
2
3
4
5
6
7
...
<head>
...
<metahttp-equiv="refresh"content="10;URL=http://www.hahoo.cn/"/>
...
</head>
...
 
 
在上面這個XHTML MP的例子,<meta>告訴WAP瀏覽器10秒後轉到URL地址http://www.hahoo.cn/,注意的是一個WML計時器在向前訪問card時被觸發開始,而XHTML MP頁,被打開時就開始觸發。
 

XHTML MP不支持事件Events

 
在XHTML MP中事件是不可用的,WML支持4種事件:ontimer, onenterbackward, onenterforward 和onpick。正如上一節中所討論的,HTTP refresh可以模擬onTimer事件。對於其他事件,在XHTML MP中沒有替代的方法,如果這些事件在你的移動設備應用程序開發中必須使用,那麼請考慮使用WML 1.x而不是XHTML MP。
 

XHTML MP不支持變量

 
在WML中,你可以聲明變量,並給它分配一個值。WML變量具有全局性,這意味着您可以在任何deck和card中使用。 WML變量的一個常見的用途是存儲用戶輸入的一些數據,這樣用戶就不用每次都反覆的輸入這些數據了。
 
在XHTML MP中,不能使用變量,不過解決方法可以將這些放到服務器端處理。例如,如果你要在XHTML MP的頁面中存儲一些用戶的數據,用來在其他頁面中使用,那麼把數據發送並存儲在服務器端,當其他頁面使用到時,可以從服務器端發送到無線設備中。
 

XHTML MP不支持客戶端腳本

 
在WML中,您可以使用客戶端腳本語言WMLScript,這是類似於JavaScript。WML Script的比較常用的是驗證用戶輸入的數據。
 
Xhtml MP中不再支持客戶端腳本,解決方法是把這些放到服務器端處理。例如,要驗證用戶通過無線設備輸入的數據,數據會發送到服務器端進行處理,如果用戶輸入的數據格式不正確,超過某個範圍或者忘記輸入了某些字段,服務器端可以引導用戶到另外一個XHTML MP頁面進行提示。
 
未來,移動設備將支持一種客戶端腳本語言,叫ECMAScript Mobile Profile (ESMP),它可以用到XHTML MP中,它支持WML Script的功能。
 

XHTML MP不支持可編程序軟鍵(Programmable SoftKeys)

 
可編程序軟鍵(Programmable SoftKeys)是WML的一個很大的特點。<do>標籤常用來編寫softkey。用戶可以方便地通過點擊一個手機左軟鍵或右軟鍵選擇常用選項。
 
這在XHTML MP中不能使用,可以使用accesskey屬性來解決,accesskey屬性用來指定一個鍵盤快捷鍵。錨鏈接和提交按鈕支持accesskey屬性。例如:
 
 
1
2
3
<aaccesskey="1"href="part1.xhtml">XHTML MP Tutorial Part 1</a><br/>
<aaccesskey="2"href="part2.xhtml">XHTML MP Tutorial Part 2</a><br/>
<aaccesskey="3"href="part3.xhtml">XHTML MP Tutorial Part 3</a>
 
 
如果用戶按下“1”鍵,WAP瀏覽器將直接進入“part1.xhtml”。通過accesskey屬性,要觸發一個動作,在XHTML MP頁中只需一個點擊。這類似使用SoftKeys。
 
WAP CSS中的 -wap-accesskey,可以用來代替accesskey屬性
 
一些Nokia的WAP瀏覽器,所有的錨鏈接和提交按鈕,有accesskey屬性指定鍵盤快捷,會自動包含在“選項”菜單中。用戶可以通過點左鍵來調出選項菜單。在選項菜單中的錨鏈接的標籤名稱是在<a></ a>標籤內的文本。對於圖像鏈接和提交按鈕,選項菜單中的名稱是<img>的alt屬性值和<input>標記的value屬性值。例如:
 
 
1
2
3
4
5
6
7
8
9
10
<aaccesskey="1"href="part1.xhtml">XHTML MP Tutorial Part 1</a><br/>
<aaccesskey="2"href="part2.xhtml"><imgsrc="icon.gif"height="40"width="40"alt="XHTML MP Tutorial Part 2" /></a><br/>
 
<formaction="xhtml_mp_tutorial_proc.asp"method="get">
  <p>
    Which part of our XHTML MP tutorial do you like most?<br/>
    <inputtype="text"name="tutorial_part"title="Edit"/><br/>
    <inputaccesskey="3"type="submit"value="Submit Form" />
  </p>
</form>
 
在上面這個例子中,"XHTML MP Tutorial Part 1","XHTML MP Tutorial Part 2","Submit Form"將會成爲選項菜單的標籤文本,如果文字太長,它將會自動被截斷。
 
注意,此功能在非Nokia手機中不支持。
 

XHTML MP不支持<u>標籤

 
在WML中,<u>標籤可以用來給文本加下劃線。
 
在XHTML MP中不再支持<u>標籤,要給文字加下劃線,可以通過WAP CSS的text-decoration屬性來解決。例如,如果要給所有的H1增加下劃線,你可以按照下面的寫法:
 
1
2
3
h1{
 text-decoration:underline
}
 

XHTML MP不支持Input框的format屬性

 
在WML中,可以對<input>標籤設置用戶可以輸入的數據類型和可輸入的字符數。
 
在XHTML MP中,<input>不支持format屬性,另外的解決方法是通過WAP CSS的 -wap-input-format來設置。-wap-input-format可以設置輸入的格式,這根format屬性很像。例如,要限制所有輸入字段只接受5個數字字符,那麼在XHTML MP頁面的WAP CSS樣式表中通過如下代碼聲明:
 
 
1
2
3
input {
 -wap-input-format:"5N"
}
 
 

XHTML MP 不支持錨點傳輸數據

 
 
在WML中,通過錨鏈接將數據發送到服務器端,像這樣:
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
<p>
  What's your name?
  <inputname="name"/><br/>
  Which part of our XHTML MP tutorial do you like most?
  <inputname="tutorial_part"/><br/>
  <anchor>
    <gomethod="get"href="xhtml_mp_tutorial_proc.asp">
      <postfieldname="name"value="$(name)"/>
      <postfieldname="tutorial_part"value="$(tutorial_part)"/>
    </go>
  Send Data
  </anchor>
</p>
...
 
XHTML MP Does Not Support Posting of Data with Anchor Links1

 
XHTML MP Does Not Support Posting of Data with Anchor Links2
Sony Ericsson T610
XHTML MP Does Not Support Posting of Data with Anchor Links3

 
XHTML MP Does Not Support Posting of Data with Anchor Links4
Nokia Mobile Browser 4.0
 
XHTML MP不支持錨鏈接發送數據,用提交按鈕來代替,下面的XHTML MP代碼跟上面的WML代碼做同樣的事情。
 
1
2
3
4
5
6
7
8
9
10
11
...
<formaction="xhtml_mp_tutorial_proc.asp"method="get">
  <p>
    What's your name?<br/>
    <inputname="name"/><br/>
    Which part of our XHTML MP tutorial do you like most?<br/>
    <inputname="tutorial_part"/><br/>
    <inputtype="submit"value="Send Data"/>
  </p>
</form>
...
 
XHTML MP Does Not Support Posting of Data with Anchor Links5

 
XHTML MP Does Not Support Posting of Data with Anchor Links6
Sony Ericsson T610
XHTML MP Does Not Support Posting of Data with Anchor Links7

 
XHTML MP Does Not Support Posting of Data with Anchor Links8
Nokia Mobile Browser 4.0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章