写点什么

XUL:Web 该如何展现?

  • 2007-04-16
  • 本文字数:1149 字

    阅读完需:约 4 分钟

上星期我们简单谈及了富客户端框架的未来,那时我们只是把 XUL 看作是 Mozilla 上扩展的一种语言,然而这似乎是错误的看法。

XML 用户界面语言(XML User Interface Language,简称 XUL)和我们上个星期所介绍的那些框架有许多共通之处,包括基于XML 来展现,使用JavaScript 作后端。但仍可通过一些主要特点来区分它们的。

大多数Windows 开发者对于新框架的第一个疑问会是“它会好看吗?”,换句话说,这个框架的外观是否会和本地应用程序相像。对于XUL 来说,答案看似是肯定的。 Mozilla Amazon Browser (MAP)显示了它可以用来做漂亮的富客户端。虽然运行在 Firefox 上,但他看起来就和本地的应用程序一样。如 XUL Periodic Timetable (只支持 Mozilla)网站所演示的那样,它已经提供了富客户端开发者们所期望的大多数控件。

在十年前,人们尚可接受不与其它平台交互的孤立平台和编程语言,但现在则是难以接受的。为此, XPCOM XPConnect 就应运而生了。

XPCOM(Cross Platform Component Object Model,跨越平台的对象模型构件),是一个为支持跨平台代码和标准组件的框架。XPCOM 构件能够用 C、C++ 和 JavaScript 来编写,同时它能被 C、C++、JavaScript、Python、Java 和 Perl 所调用。

XPConnect 是能让 XPCOM 和 JavaScript 之间作简单解释的一种技术。XPConnect 允许 JavaScript 对象透明地访问和操作 XPCOM 对象。它也能让 JavaScript 对象去实现能被 XPCOM 对象所调用的 XPCOM 兼容接口。

最近另一个热点话题就是 XUL 的国际化,它已经转换成易于阅读的 DTD 和 property 文件。这样当然就使移植更为容易,通过 XUL 代码本身能够被分别产生和组合这些文件。

和许多开源项目一样,XUL 不缺少工具的支持。XUL 的主页上列举好些工具和实用程序,其中包括 XUL Explorer ,一个轻量级的 IDE。

乍看下 XUL 似乎和 Gran Paradiso(Firefox 3 的开发代号)有一样的问题,需与 Mozilla 相关浏览器绑定。然而,事实并非如此,另一个 Mozilla 的产品, XULRunner ,允许基于 XUL 的应用程序在这些浏览器以外运行,现在所支持的平台有 Windows, OS X, 和 Linux。

然而 XUL 并非百份百的解决方案。当在 Firefox 2.0.0.3 版里测试时,就出现如 Alt+D 的快捷键跳转到 Firefox 上而不是应用程序的命令按钮上的问题。这些或许都是小缺陷,很容易就修复了。

XUL 的公开性和优雅的架构,使得 WPF/E 和 Adobe Flex 想取胜也绝非易事。

译者简介:陈俊是InfoQ 中文站的志愿翻译, SpringSide 开源项目的核心成员,以及中科院软件工程硕士,就职于 Accenture。长期从事 Java EE 应用开发, 热衷于软件体系结构,设计模式,软件过程改进及敏捷开发研究,也喜欢尝试不同的开源技术,一直以来坚持为开源社区的发展贡献自己的力量。加入 InfoQ 中文站志愿者翻译队伍,请邮件至 china-editorial@infoq.com

2007-04-16 22:001449
用户头像

发布了 27 篇内容, 共 10.9 次阅读, 收获喜欢 15 次。

关注

评论

发布
暂无评论
发现更多内容

CityClub 北京站马上开始!线下沙龙等你来!

InfoQ写作社区官方

热门活动

大数据培训-Hive高频面试题分享

@零度

hive 大数据开发

OneBlock | 区块链人才聚集地,面向全球的Substrate 开发者社区

One Block Community

技术社区 #区块链#

Pulsar—新一代云原生消息平台

中原银行

分布式 pulsar 中原银行 分布式消息

写作社区 2 周年,全员狂欢燥起来!

InfoQ写作社区官方

热门活动 InfoQ写作社区2周年

解决两大难题,TDengine 助力亿咖通打造自动驾驶技术典范

TDengine

数据库 tdengine 物联网

EMQ 映云科技 & 阿里云推出“一站式工业数字化解决方案”,共建产业数据湖生态圈

EMQ映云科技

阿里云 开源 物联网 IoT emq

CESS:波卡生态去中心化数据存储的未来

One Block Community

区块链 云存储 去中心化存储 CESS

领域驱动设计(DDD)理论与方法

Java工程师

Java 程序员 互联网 DDD 架构设计

web前端培训-ES6 教程:全面了解 ES6 模块

@零度

前端 ES6

MacOS 系统如何把PHP版本升级到 7.4或者更高的版本呢,今天教程来啦

CRMEB

FinClip 与 uniapp:轻应用平台与前端开发框架

FinClip

深度学习,如何选择GPU服务器?

Finovy Cloud

人工智能 深度学习 GPU服务器

入门Python之后还是搞不定面试、做不来项目,推荐读读这本书

图灵教育

Python 编程 程序员

一文搞懂Netty发送数据全流程 | 你想知道的细节全在这里

bin的技术小屋

网络编程 Netty Java’ 4月月更 Reactor多线程

招聘 | 多家区块链项目招募开发者!

One Block Community

区块链 招聘 波卡

2022年3月国产数据库大事记-墨天轮

墨天轮

数据库 TiDB 国产数据库 KingBase gbase8a

3分钟了解Vue开发小程序的技术原理

FinClip

运维人必知必会的Zabbix核心命令

博文视点Broadview

恒源云(Gpushare)_新功能上线,你确定不进来看看?

恒源云

GPU服务器 GPU算力

低代码平台常见的安全隐患,J2PaaS低代码平台如何解决?

J2PaaS低代码平台

低代码开发 低代码平台 企业级低代码平台 J2PaaS低代码平台

Redis Stream 专为队列而生,别再用 List 实现队列了

码哥字节

Redis Stream Redis 数据结构 4月月更

幸运哈希值竞猜游戏系统开发方案

薇電13242772558

区块链 哈希值

如何在云端重塑内容生产?来看这场虚拟人主持的发布会

阿里云CloudImagine

阿里云 音视频 视频剪辑 智能生产 视频云

TiDB 6.0 发版:向企业级云数据库迈进

PingCAP

真的是最全的一致性hash环讲解了

Java工程师

Java 架构 分布式 算法 hash

能让程序员涨薪5K的Hystrix核心工作原理,你真的不打算学吗?

Java工程师

Java 程序员 互联网 微服务 科技

Java培训-怎样通过 Bucket4j 提供速率限制

@零度

JAVA开发 Bucket4j

基于云服务器ECS搭建网页游戏《浪剑天下》

阿里云弹性计算

玩转ECS 游戏服务器

波卡动态 | Moonbeam 上第一个3D NFT项目宣布合作

One Block Community

区块链 以太坊 polkadot 波卡 Moonbeam

Moonbeam 漏洞赏金计划,最高奖金 100 万美金!

One Block Community

区块链 波卡 Moonbeam

XUL:Web该如何展现?_Java_Jonathan Allen_InfoQ精选文章