写点什么

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

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

关注

评论

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

graphpad prism基础使用教程

互联网搬砖工作者

谷歌Android things物联网硬件接入阿里云IoT物联网套件实战——设备接入类

阿里云AIoT

物联网 传感器 Android开发

Serverless:基于个性化服务画像的弹性伸缩实践

百度Geek说

云原生 成本优化 Servelress 弹性伸缩 企业号 3 月 PK 榜

Trapcode Particular(AE经典粒子插件)绿色破解版

互联网搬砖工作者

现货合约量化机器人开发对冲交易策略

薇電13242772558

量化策略

带你掌握如何查看并读懂昇腾平台的应用日志

华为云开发者联盟

人工智能 华为云 昇腾 华为云开发者联盟 企业号 3 月 PK 榜

GifGun for Mac(快速输出GIF动图格式AE插件)

互联网搬砖工作者

国内首发|焱融科技 YRCloudFile 支持 NVIDIA GPUDirect Storage(GDS)

焱融科技

人工智能 分布式存储 分布式文件存储 全闪存储 GPT-4

感谢大家对我的捐赠和鼓励

源字节1号

InstructPix2Pix: 动动嘴皮子,超越PS

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜 文本编辑图像

干货,在差分对信号的应用中需要注意些什么?

华秋PCB

电路 PCB PCB设计 共模

高性能、高稳定、高扩展:解读ByteHouse实时导入技术演进

Openlab_cosmoplat

云原生 开源社区 大数据‘’

分布式存储中建立高效回收站的设计思考

焱融科技

文件存储 分布式文件存储 回收站 高性能存储 全闪存储

通过HTTP/2通道实时获取IoT设备状态和数据——设备管理运维类

阿里云AIoT

Java 物联网

阿里云IoT物联网平台基础版和高级版数据进入规则引擎的流转详解——普及类

阿里云AIoT

物联网

聚势启新,赢未来!网银互联通航云计算数据中心三期盛大落地!

科技热闻

AltCLIP:改变语言编码器,扩展语言功能

Zilliz

计算机视觉 openai

何为神经网络卷积层

华为云开发者联盟

人工智能 神经网络 华为云 华为云开发者联盟 企业号 3 月 PK 榜

PS磨皮插件DR5白金版:支持ps 2022

互联网搬砖工作者

智维数据加入信创工委会,助力国产化智能运维自主创新

智维数据

信创 国产化 智能运维 网络运维 智维数据

获得华为技术认证,智维数据携手华为云初创生态再添新坐标!

智维数据

华为云 智能运维 网络运维 智维数据 技术认证

项目经理问我Tomcat 与 Undertow 怎么抉择?此文教她选

Java你猿哥

Java jdk Spring Boot ssm

智维数据荣获2022金融科技应用创新奖

智维数据

金融科技 智能运维 金融电子化 智维数据

Dapr实战—RabbitMQ binding

青柚1943

Docker RabbitMQ dapr 发布订阅 Binding

京东云总裁曹鹏:安全可控的数字基础设施提升产业链韧性

京东科技开发者

数字化 产业数字化 京东云 国产化替代 京东云峰会

直播 | StarRocks 实战系列第四期--查询性能优化

StarRocks

数据库

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