一、XUL簡介
XUL是“XML 化的用戶界面語言(XML User Interface Language)”的縮寫,跟XML一樣是一種與平台無關性的語言,是用來描述用戶界面的語言,現在被廣泛用於Mozilla平台。Mozilla本身的界面就是用XUL進行描述的。
1.1 XUL相關技術
XUL與以下技術相關:
CSS:層疊樣式表(Cascading Style Sheets)的縮寫,這是一種可以通過規則來控制 Html/XUL/XML 等顯示外觀的語言。(其實XUL本身就是XML其中一種)
DOM:文檔對象模型(Document Object Model)的縮寫,這是一個允許通過腳本來動態訪問和更新 Html/XML 文檔的內容,結構和樣式的接口。
JavaScript:由 Netsacpe 公司的 Brendan Eich 創造的一種解釋型語言,它主要用來進行基於浏覽器下的腳本應用開發。因為 Mozilla 內置了 Javascript 解釋器,所以使用 JavaScript 開發擴展,就成為編程語言的首選。雖然,你也可以使用 C++,Perl,Python 等進行擴展的開發,但這些語言的先天優勢都明顯不足。
XHTML:可擴展超文本標記語言(The Extensible HyperText Markup Language),XUL同XHTML語法有很多類似之處,而且XUL允許在內部嵌入Html代碼。
XPCOM:跨平台組件對象模型(Cross -platform Component Object Model)的縮寫,它很像微軟的提出的組件模型技術,但它是跨平台的,即其運行環境可以不依賴於某種特定的操作系統平台。
XPConnect:一種將 XPCOM 與 Javascript 連接起來的技術。該技術允許組件被腳本化,而且能夠用 JavaScript 來進行組件的開發。
XBL:可擴展的綁定語言 (Extensible Binding Language)的縮寫。
RDF:資源定義框架(Resource Definition Framework)的縮寫。Mozilla 使用這種文件格式來保存擴展的注冊信息和描述信息等。
對於擴展開發來說,必須掌握的技術有 XUL,CSS,DOM,XPCOM,JavaScipt,而對於 XBL,XPConnet,RDF 做簡單了解即可。
2.2 各相關技術的功能
如果說CSS是控制網頁界面的話,那XUL即是控制桌面應用程序界面的語言。
CSS用來控制程序界面,利用CSS可以在界面加上一些效果,例如字體大小、邊框、顏色等。當然,也有一些Mozilla獨有的特性。
DOM 主要用來為 JavaScritp 提供一個 Html/XML 的文檔操作接口,並且,它也可以用來操作 CSS,對界面進行“動態”操作,如:按鈕的禁止與否,動態裝載數據等。可以看出,通過 DOM 接口,我們可以將程序的邏輯處理部分與界面表現部分有機的結合起來。
JavaScipt 是擴展開發的核心要求,它主要用來實現程序的業務邏輯描述。可以說,從網頁下的 Javascript 開發到擴展下的 JavaScript 開發,是一種由輕量級到重量級的轉變。
由於 JavaScript 語言只內置了幾個與本地訪問無關的對象,而對於桌面開發來說,顯然不能滿足要求。因為桌面開發需要訪問大量的本地和網絡資源,包括文件,剪貼板,Socket,浏覽器本身等各種資源。而 XPCOM 為面向桌面的開發提供了這種可能。只有使用 XPCOM,我們的擴展才可以做出實用的功能,沒有 XPCOM,本地與遠程的資源整合可以說是不可能。