写点什么

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

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

关注

评论

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

技术分享| 如何做一款容纳百人的视频会议?

anyRTC开发者

音视频 WebRTC 视频会议 实时通信 视频通话

拒绝编译等待 - 动态研发模式 ARK

字节跳动终端技术

ios 字节跳动 移动开发

阿里IM技术分享(六):闲鱼亿级IM消息系统的离线推送到达率优化

JackJiang

架构设计 即时通讯 IM

这可能是,Flutter 中最“强悍”的内存泄漏检测方案......

阿里巴巴终端技术

flutter ios android 内存泄漏

恒源云(GPUSHARE)_基于梯度的NLP对抗攻击方法

恒源云

人工智能 深度学习

黄东旭:写给后端程序员看的认知心理学丨Go+ 1.0 发布会干货分享

七牛云

Go 语言

程序员的硬核浪漫 — 女友专属语聊房(内附源码)

ZEGO即构

音视频 语聊房 demo源码 即构科技

云小课 | 网站接入WAF失败怎么办?看这里就够了

华为云开发者联盟

华为云 Web应用防火墙 接入WAF失败 故障排查

Black Hat Europe 2021议题解读:Wi-Fi Mesh中的安全攻击面

百度安全

Black Hat Wi-Fi Mesh

【高并发】通过源码深度分析线程池中Worker线程的执行流程

冰河

Java 并发编程 多线程 高并发 异步编程

构建 Snowpack + React + Typescript + Electron的Desktop App

吴脑的键客

typescript Electron React webpack

Go+ Together!Go+ 1.0 发布会暨 Go+ 开发者基金会启动仪式圆满结束!

七牛云

Go 语言

林昊:开发者如何提升写代码的硬实力丨Go+ 1.0 发布会干货分享

七牛云

Go 语言

频繁更新主机,导致pod ip不够解决方法

ilinux

北省廊坊市本地有等保测评机构吗?在哪里?

行云管家

网络安全 等保 等级保护 等保测评 廊坊

Microsoft SQL Server 迁移利器,Babelfish for Aurora PostgreSQL 上线!

亚马逊云科技 (Amazon Web Services)

数据库 开源 源代码

参会指南 | 2021MongoDB南京技术沙龙

MongoDB中文社区

mongodb

vue3 学习笔记 (一)——mixin 混入

码仔

Vue3 mixin

许式伟:Go+ v1.x 的设计与实现丨Go+ 公开课 • 第一期

七牛云

Go 语言 goplus

Go iota 原理和源码剖析

编程宝库

【堡垒机小知识】堡垒机是硬件还是软件?

行云管家

网络安全 信息安全 数据安全 堡垒机

多变的智能降噪

睿象云

运维 告警 智能运维 告警管理

原因揭秘!为什么选择 Pulsar 而非 Kafka

Apache Pulsar

kafka 开源 架构 分布式 Apache Pulsar

许式伟:Go+ Together丨Go+ 1.0 发布会干货分享

七牛云

Go 语言

iOS开发面试和底层学习视频整理合集

iOSer

ios iOS面试 ios开发 iOS视频学习 iOS涨薪

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」小白专区之领略一下RocketMQ基础之最!

码界西柚

RocketMQ 消息队列 Alibaba技术 11月日更

视野 | OpenSearch,云厂商的新选择?

RadonDB

数据库 搜索引擎; Elastic Search

干货分享:细说双 11 直播背后的压测保障技术

阿里巴巴中间件

阿里云 云原生 中间件 全链路 PTS

一个站点不够学?那就在用Python增加一个采集目标,一派话题广场+某金融论坛话题广场爬虫

梦想橡皮擦

11月日更

巅峰对话在线研讨 Q&A:Oracle Database 21c vs openGauss 2.0新特性解读和架构演进

墨天轮

数据库 oracle opengauss

无处不在的 Kubernetes,难用的问题解决了吗?

阿里巴巴中间件

阿里云 Kubernetes 容器 云原生 中间件

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