【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

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

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

关注

评论

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

滚雪球学 Python 之内置 random 模块

梦想橡皮擦

28天写作 3月日更

协助市场监督管理局,打造质量基础设施“一站式”服务平台

源中瑞-龙先生

【LeetCode】螺旋矩阵 II Java 题解

Albert

算法 LeetCode 28天写作 3月日更

APP搜索如何又快又准?

华为云开发者联盟

elasticsearch App 搜索 云搜索 词库

Java面试“圣经”,已助朋友拿到7个Offer!2021年金三银四面试知识点合集

Java架构追梦

Java 阿里巴巴 面试 架构师

前端开发:Mac环境的Chrome浏览器设置跨域请求的SameSite解决方法

三掌柜

vue.js 大前端 3月日更

哪有简单的满足——自我决定论

Justin

心理学 28天写作 游戏设计

Apache Oozie 深入原理讲解

五分钟学大数据

大数据 28天写作 3月日更 oozie

JVM笔记--如果你写JVM,最需要考虑的重要结构是什么?

秦怀杂货店

Java JVM

白话解读 WebRTC 音频 NetEQ 及优化实践

阿里云视频云

阿里云 音视频 WebRTC 音频技术 视频云

初识Golang之声明变量

Kylin

读书笔记 3月日更 21天挑战 Java转go Go 语言

你的头发还好吗?大数据分析脱发城市哪里强

不脱发的程序猿

大数据 程序员 程序人生 数据分析 3月日更

第一个mybatis程序,实现CRUD

xiezhr

mybatis 中间件 crud

OpenCV萌新福音:易上手的数字识别实践案例

华为云开发者联盟

OpenCV 图像处理 数字 图像预处理 信用卡

燃烧吧!开发者们,一起在云端构建开放成熟的 ARM 生态!

亚马逊云科技 (Amazon Web Services)

我帮大厂做架构之——微信的“N个朋友读过”怎么实现

臧萌

成长 架构师 职场成长

华为在数字化浪潮下的API变革实践

华为云开发者联盟

华为 架构 数字化 API API战略

软件匠艺

Teobler

敏捷 敏捷开发 软件匠艺 伪敏捷

掌握了开源框架还不够,你更需要掌握源代码

华为云开发者联盟

开源 Element 源代码 Vue 3

网易 Duilib:功能全面的开源桌面 UI 开发框架

有道技术团队

开源

Rancher 2.5.6发布,支持Kubernetes 1.20

Rancher

几个你不知道的dubbo注册中心细节

捉虫大师

zookeeper dubbo 注册中心

带你全面认识CMMI V2.0(二)

IPD产品研发管理

项目管理 CMMI

EFT是什么?EGG公链又是什么?一文带你了解

币圈那点事

公链 挖矿 #区块链#

史上超强拷贝仓——GitHub 热点速览 v.21.11

HelloGitHub

GitHub 开源

不愧为Java程序员福音 2021阿里巴巴中台架构实战重磅来袭!

比伯

Java 编程 架构 面试 程序人生

语音通话 2.0

anyRTC开发者

音视频 WebRTC RTC 语音通话

为什么MySQL不推荐使用子查询和join

Java小咖秀

MySQL MySQL优化

办公自动化:Day01

缭乱地男神

办公自动化 IT蜗壳教学

看了 GitHub 上的这些面试题项目后,我飘了!

JackTian

GitHub 开源 面试

大作业--联合运营平台

ALone

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