WML Script是屬於無限應用協議WAP應用層的一部分,使用它可以向WML卡片組和卡片中添加客戶端的處理邏輯,目前最新的版本是1.1版。WML Script1.1是在歐洲計算機制造商協議會制定的ECMAScript腳本語言的基礎上,經過修改和優化而指定的。它能夠更好的支持諸如移動電話類的乍帶寬通信設備,在WML編程中使用WML Script可以有效的增強客戶端應用的靈活性,而且,我們也可以把WML Script作為一個工具使用,開發出功能強大的WAP網絡應用和無限網頁。本章我們將詳細講解WML Script1.1編程的基礎預法制時,如基本規則、變量預數據類型、操作賦予表達式等。為了敘述上的簡便,以後我們將“WML Script1.1”簡稱“WMLScript ”。
4.1 WML 程序中調用WML Script函數
經過前兩章的學習,熟悉C語言的讀者可能會認識到,WML 的函數功能、邏輯運算功能等都是十分有限的。而WMLScript提供了豐富的函數功能,我們在WAP應用開發可以使用WMLScript來增強WML編程。因此,WMLScript成為擴展WML編程能力的主要開發工具。
4.2 WMLScript的主要優點及其字節碼解釋器
WMLScript具有一套定義好的字節碼和一個解釋器參考結構。無線網絡傳輸中WMLScript的數據均以二進制格式進行傳輸,所以,用戶可以使用乍帶寬通信信道,從而能夠保持客戶端手機只需要最小限度的內存。ECMAScript修改後得到的WMLScript能夠更快、更小、更容易的編譯程序為字節碼形式。所有這些特點,是WMLScript具備了WML所不能具備的很多優點和功能。
4.2.1 使用WMLScript的主要優點
WMLScript的設計宗旨是為WMLScript系統提供一般的腳本處理能力,使用WMLScript我們可以進一步補充基於XML的WML語言的編程功能,開發針對乍帶寬的網絡應用及內容,如文本、圖像、選擇列表等,我們可以使用簡單的格式編寫出更靈活和更具可讀性的用戶界面。WMLScript具備的WML所不能具備的優點和功能,主要包括如下幾個方面: (1)檢查用戶輸入的合法性:
(2)擴展用戶浏覽器的功能,比如允許程序員開發手機的電話呼叫、發送短信息、存儲電話號碼、管理電話簿或SIM卡等;
(3)生成用戶端的確認、提示、警告信息或操作對話框,並使之快速顯示在浏覽器上;
(4)在用戶浏覽器的更改後,能夠對浏覽器端的軟件和參數進行擴展與配置;
(5)最大程度克服客戶端的乍帶寬通信連接限制,並提供豐富的程序功能;
(6)補充WML並使之實現針對微型移動終端設備的多種服務,如支持高級用戶界面、增加客戶端智能型、提供用戶浏覽器外圍功能的訪問能力,以及在服務器與客戶端浏覽傳輸數據是減少帶寬占用等。
4.2.2 WMLScript的字節碼解釋器
在WMLScript的字節碼解釋器解釋之前,WMLScript語言編寫的文本格式的程序將被首先編譯為二進制格式的代碼。編譯時,編譯器通常先將WMLScript程序分成若干個編輯單位,每個單位的程序都包含一定數量的語句行和WMLScript函數,然後,WMLScript的編譯器將按照這些編譯單位,逐一將WMLScript程序作為輸入內容,而把對應的字節碼作為輸出內容。當用戶通過WAP手機調用WMLScript程序時,編譯器的編碼功能即被激活、執行。
1 2 3 4 5 6 7 下一頁
2.浮點數。浮點數通常定義為含有小數點的數字,可以包含小數和指數部分。浮點數的形式較多,可以使十進制的整數或浮點數,可以是分數,也可以是指數;但一個浮點數必須至少有一個數。
指數是以e或E開頭,後面跟著一個整數。指數是以10為底冪。例如:e0時10的零次冪,例如:e0時10的另次冪,e-2時10的負2次冪集等於0.01。指數可以帶符號,正好(+)或者減號(-),它們分別代表是正指數和負指數。
3.字符串。字符串是指定義在成對的雙引號("")或單引號(‘ ’)之間的內容。
由於WMLScript只允許使用成對的雙引號或但引號來定義字符串,所以程序中使用一個單引號或一個雙引號時就會出現編譯錯誤。
考慮到有些特殊字符不能在字符串中直接顯現出來,所以WMLScript提供了轉譯序列來表示這些特殊字符。
4.布爾型。它只是ture和false兩個數值,用於表示WMLScript中的“真值”或“假值”。布爾型數據可參與異、或等運算,具體規則我們後面介紹。
5.無效型。也稱為“空類型”,它是WMLScript支持的一個表示無效值的量,以invalid表示。該兩與C語言中的NULL類似。
4.保留字。WMLScript中定義有一個保留字集合,含有一些表示特殊意義的單詞這些次不能另外定義,也不能最為其他標識符。WMLScript中的保留字如下:
acces http agent if break isvalid continue meta header
div name div= path domain return else typeof while
equiv url extern use for user function var
另外,WMLScript還為將來的版本預留了一些保留字,主要有:
case finally catch import class private const public debugger
sizeof default struct do super enum switch export throw
extends try
WMLScript還有一些沒有使用的保留字:
delete null in this lib void new with
7.標識符。WMLScript的標識符可以指定或命名3種元素:變量、函數和標注。標識符不能以數字開頭,但能一段下劃線(-)開頭,而且,標識符不能是WMLScript的保留字。例如,timeOfDay、speed 、quality、HOME_ADDRESS、_myName、__、varO等都是合法的標識符;而以數字或非短下劃線的特殊符號開頭的字串,以及保留字等都屬於不合法的標志賦,如while、for、if、my~name、$sys、1
1234下一頁