XUL 用户界面语言介绍

简介:

XUL[1]是英文“XML User Interface Language”的首字母缩写。它是为了支持Mozilla系列的应用程序(如Mozilla Firefox和Mozilla Thunderbird)而开发的用户界面标示语言。顾名思义,它是一种应用XML来描述用户界面的标示语言。
XUL是开放标准,重用了许多现有的标准和技术[2],包括CSS、JavaScript、DTD和RDF等。所以对于有网络编程和设计经验的人士来说,学习XUL比学习其他用户界面标示语言相对简单。
使用XUL的主要好处在于它提供了一套简易和跨平台的widget定义。这节省了编程人员在开发软件时所付出的努力。

XUL元素 XUL定义了一套丰富的元素。它们大致上可分为以下几种:
基层元素:例如视窗、page、对话框、向导
Widget:例如标签、按钮、文字方块、条列式菜单、组合方块、选择钮、复选框、树、菜单、工具栏、分组框、标签页、色彩选择器、spacer、splitter
排版:例如方框、网格、堆栈、叠
事件和脚本:例如脚本、命令、key、broadcaster、observer
数据源:例如template、rule
其他:例如overlay(类似SSI,但在客户端运作,而且更为强大)、iframe、浏览器、编辑器
一个XUL文件中也可以包含其他XML命名空间的元素,例如XHTML、SVG和MathML。
现时的XUL还未在提供一些普遍的widget,例如spinbox、slider和canvas。XUL 2.0[3]计划中将会包括这些缺乏的控件。

XUL是如何处理的[4]
Mozilla浏览器内部使用跟HTML的处理非常相似的方法来处理XUL:当你在浏览器的地址栏里面输入HTML页面的URL以后,浏览器就定位这个网址并下载页面内容,然后Mozilla将页面内容转换成树的数据结构,最后再将树转换成对象集合,集合中的对象最终被展现在屏幕上就成了我们所见的网页。CSS, 图片以及其他技术被用来控制页面的展现。XUL的处理过程与此非常类似。

XUL应用 虽然XUL的设计原意是为了创作Mozilla程序及其扩展,但事实上人们也能利用它来编写基于HTTP的网络应用程序和基于swt/swing/gwt的客户端程序。一些开源的架构使用了XUL,例如Pentaho XUL Framework[5]。Pentaho XUL使用XUl跨多种技术(Swing, SWT, GWT)渲染用户界面,来实现业务逻辑的可重用性。shandor-xul[6]项目也是基于XUl开发的,项目地址见参考资料[6]。
Firefox里内置的一些XUL 地址见:http://www.cnblogs.com/jxsoft/archive/2011/04/07/2008202.html

运行XUL应用程序 可以选择 3 种方式来运行 XUL 应用程序:
1.使用基于 Mozilla 的浏览器进行简单测试
2.使用XULRunner
3.使用Firefox 3.0作为XUL运行时,它的功能和 XULRunner很相似

总结 XUL用户界面语言是一种可用于开发Mozilla独立应用程序和浏览器扩展的通用语言,还可以用来实现跨多种UI技术的用户接口,提高业务逻辑代码的重用性,第二点视乎是更值得推荐使用的。关于XUl的教程见参考资料。

参考资料

1.XUL Wiki : http://zh.wikipedia.org/wiki/XUL 2.XML 用户界面语言(XUL)开发简介: http://www.ibm.com/developerworks/cn/education/xml/x-xulintro/section2.html 3.XUL 2.0:   https://wiki.mozilla.org/XUL:Home_Page 4.[XUL结构](https://developer.mozilla.org/cn/XUL_%E6%95%99%E7%A8%8B/1-2_XUL%E7%9A%84%E7%BB%93%E6%9E%84) 5.Pentaho XUL ramework:   http://wiki.pentaho.com/display/ServerDoc2x/The+Pentaho+XUL+Framework+Developer's+Guide 6.shandor-xul: http://code.google.com/p/shandor-xul/ 7.Mozilla XUL教程:   https://developer.mozilla.org/index.php
目录
相关文章
|
3月前
|
Rust JavaScript 前端开发
【一起学Rust | 框架篇 | Frui框架】rust一个对开发者友好的GUI框架——Frui
【一起学Rust | 框架篇 | Frui框架】rust一个对开发者友好的GUI框架——Frui
504 0
|
20天前
|
开发工具 Swift iOS开发
利用SwiftUI构建动态用户界面:iOS开发新范式
【4月更文挑战第3天】 随着苹果不断推进其软件开发工具的边界,SwiftUI作为一种新兴的编程框架,已经逐渐成为iOS开发者的新宠。不同于传统的UIKit,SwiftUI通过声明式语法和强大的功能组合,为创建动态且响应式的用户界面提供了一种更加简洁高效的方式。本文将深入探讨如何利用SwiftUI技术构建具有高度自定义能力和响应性的用户界面,并展示其在现代iOS应用开发中的优势和潜力。
|
2月前
|
存储 安全 程序员
qtC++语言的独特机制
qtC++语言的独特机制
|
2月前
|
Rust 前端开发 JavaScript
Rust与JavaScript的跨语言交互:探索与实践
本文旨在探讨Rust与JavaScript之间的跨语言交互方法。我们将深入了解WebAssembly(Wasm)的角色,以及它如何使得Rust与JavaScript能够在Web应用中和谐共处。此外,我们还将介绍Rust与JavaScript的集成方式,包括Rust编译到Wasm、使用wasm-bindgen进行Rust与JavaScript的绑定,并通过实际案例展示如何实现两者之间的交互。
|
3月前
|
Rust JavaScript 前端开发
【一起学Rust | 框架篇 | iced框架】rust原生跨平台GUI框架——iced
【一起学Rust | 框架篇 | iced框架】rust原生跨平台GUI框架——iced
189 0
|
3月前
|
XML Java Android开发
用户界面开发基础
用户界面开发基础
57 0
|
11月前
|
Rust 前端开发 JavaScript
2023年语言和框架我们值得关注什么?
前端新技术一如既往的更新迭代快:前几天 Next.js 大会,邀请了 vercel 的 CEO 来讲 vercel 的认知。顺带推出了 turbopack,号称比 webpack 快 700 倍,比 vite 快 10 倍。又有很多前端同学在问,我们要学 Rust 了吗?新的内容更新迭代太快了,我们跟不上?今年的终端 D2 会有哪些内容?会不会讲 Rust?
179 0
|
前端开发 JavaScript 开发者
封装库/工具库中重要概念之UI框架
UI(User Interface)框架是前端开发中十分重要的一部分,它提供了各种组件和样式,用于构建页面和用户界面。在前端开发中,封装库/工具库可以帮助我们更加高效地使用 UI 框架。
147 0
|
XML Android开发 数据格式
用户选项和设置用户界面
用户选项和设置用户界面
71 0
|
Rust 前端开发 JavaScript
2022年语言和框架我们值得关注什么?
前端新技术一如既往的更新迭代快:前几天Next.js大会,邀请了vercel的CEO来讲vercel的认知。顺带推出了turbopack,号称比webpack快700倍,比vite快10倍。又有很多前端同学在问,我们要学Rust了吗?新的内容更新迭代太快了,我们跟不上?今年的终端D2会有哪些内容?会不会讲Rust?
106 0

热门文章

最新文章