免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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:00993
用户头像

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

关注

评论

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

新年新气象,老兵开新坑

致知Fighting

Java Go 服务器

FL水果软件2023最新中文版本在哪里下载?

茶色酒

FL Studio21

浪潮云:以数据云IBP释放数据要素力量

云计算 数据云

来看一个 ChatGPT 有关程序员的笑话

HoneyMoose

CleanMyMac4.12.4最新中文版本下载

茶色酒

CleanMyMac X

数据可视化大屏项目,我是如何实现多屏间的数据通信

梁木由

程序员 前端 前端开发

LeaRun快速开发平台:自由搭建个性化门户

力软低代码开发平台

APISIX Ingress 如何使用 Cert Manager 管理证书

API7.ai 技术团队

证书 api 网关 APISIX Ingress Controller

单体应用、SOA架构、微服务架构有哪些优劣势?

FN0

微服务架构 组件化 SOA

全球化安全生产 & 质量保障体系建设探索

阿里技术

质量保障 安全生产 全球化技术能力

成为海上霸总,全靠5G?

脑极体

5G

内存数据库如何发挥内存优势?

陈橘又青

数据库

2023最新H5前端阅读书单推荐

kcodez

前端 H5 React

单线程 Redis 如此之快的 4 个原因

C++后台开发

redis 中间件 后端开发 单线程 C++开发

一文教你如何重新认识用户

蔡农曰

互联网 产品经理 消费者 需求设计

富士康CDO史喆:数字化和智能化为何要打造开放系统,引入外部合作?

B Impact

linux 查看操作系统版本

平凡人生

文件打开标识O_CLOEXEC简介

SkyFire

Linux 文件描述符

泰山众筹sun4.0矩阵合约系统开发搭建

开发微hkkf5566

易观千帆 | 12月用户体验GX评测:国有行及股份行持续领跑,农信社用户体验关注提升

易观分析

金融 手机银行

linux 磁盘挂载

平凡人生

Guitar Pro8和谐版安装包下载教程

茶色酒

Guitar Pro8

全景剖析阿里云容器网络数据链路(三):Terway ENIIP

阿里巴巴云原生

阿里云 云原生 云原生容器

统一观测丨如何使用 Prometheus 监控 MySQL

阿里巴巴云原生

MySQL 阿里云 云原生 #Prometheus

架构实战营第10期模块六

刘博

四点聚焦亚马逊2022财报,AWS收入801亿美元,同比增长20%,年度增长率29%

B Impact

微博系统中”微博评论“的高性能高可用计算架构

Geek_e5f2e5

IntelliJ IDEA 的 Code Coverage 测试

HoneyMoose

RocketMQ Streams拓扑构建与数据处理过程

Apache RocketMQ

RocketMQ 消息列队

智能合约佛萨奇系统开发,佛萨奇2.0源码搭建

薇電13242772558

订单流量录制与回放探索实践

得物技术

Java 运维 后端 稳定生产

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