写点什么

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

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

关注

评论

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

Amdocs收购OPENET:关于5G应用落地的思考

VoltDB

大数据 数据分析 5G 物联网

让容器应用管理更快更安全,Dragonfly 发布 Nydus 容器镜像加速服务

阿里云基础软件团队

云原生

音视频社交的应用和优势

anyRTC开发者

音视频 WebRTC 语音 直播 RTC

巨建华:区块链+金融的难点

CECBC

区块链 金融

【面经】面试官:做过性能优化的工作吗?你会从哪些方面入手做性能优化呢?

冰河

面试 性能优化 JVM 高并发 高性能

程序员面试题为什么出得天花乱坠,实际工作中这些根本用不到?

Java架构师迁哥

DDIA 读书笔记(4)多节点数据复制方案

莫黎

读书笔记

图解 | 不得错过的Binder浅析(一)

哈利迪

android

SpringBoot-技术专题-war包项目外置配置文件

码界西柚

一站式低延迟直播连麦解决方案

anyRTC开发者

音视频 WebRTC 直播 RTC sdk

YOLODet--YOLO系列网络结构图(YOLOv5,YOLOv4,PPYOLO,YOLOv3)

wuzhihao7788

学习 AI 目标追踪

AI 科学家带你快速 Get 人工智能最热技术

京东科技开发者

人工智能

Java9 新特性 - 下篇

hepingfly【gzh:和平本记】

Java 新特性

区块链是未来数字经济标志性的发明技术

CECBC

区块链 数字经济

目标检测之YOLOv1

Dreamer

嵌入式的我们为什么要学ROS

良知犹存

ROS

百万年薪技术大佬的读书之旅

四猿外

Java 书籍推荐 书单 书单推荐 书籍

复盘逆袭之路!三个月时间深造,怒斩拼多多、字节、蚂蚁金服破50W年薪Offer(含自学路线图)

Java架构追梦

Java 学习 架构 面试 数据结构与算法

OpenShift 4 监控技术栈解析

东风微鸣

Kubernetes Prometheus openshift 可观察性 Thanos

搞定秒杀,只需要这几步!!

架构师修行之路

缓存 分布式 微服务 秒杀

智能驾驶看湘江:中国智能网联汽车产业的“长沙样本”

脑极体

架构师训练营第七周作业

邓昀垚

马云被约谈,阿里大数据的羹怎么分给每一个人?

CECBC

区块链 大数据

淘宝内测新内容社区淘宝逛逛:邀请B站UP主入驻打造流量池

石头IT视角

想不通(关于人生的突发奇想)

干啥啥不行的赢

YOLODet 最强PyTorch版的YOLOv5、YOLOv4、PP-YOLO、YOLOv3复现

wuzhihao7788

学习 AI 目标追踪

数据库JDBC:PreparedStatement

正向成长

JDBC SQL预处理 PrepareStatement

专业级沙箱与恶意样本的自动化分析

京东科技开发者

云计算 监控 虚拟化

聊点缓存——Part 1

姜雨生

redis 缓存

芯片破壁者(十九):显卡的战国与帝国

脑极体

甲方日常 43

句子

工作 随笔杂谈 日常

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