50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

代码diff服务改进方案

转转技术团队

测试平台开发 codediff工具

旺链科技荣登“长三角产业区块链企业30强”!

旺链科技

区块链 产业区块链 创新应用

万物皆可集成系列:低代码释放用友U8+深度价值(2)—数据拓展应用

葡萄城技术团队

低代码 用友

大型LED显示屏怎样做好保养维护

Dylan

LED显示屏 led显示屏厂家

MQTT协议详解及v5.0实践——实践类

阿里云AIoT

物联网 调度 网路协议 网络性能优化 网路架构

开源交流丨批流一体数据集成框架ChunJun数据传输模块详解分享

袋鼠云数栈

2022年中国小微信贷市场发展分析

易观分析

市场分析 小微信贷 易观

兼具高效与易用,融云 IM 即时通讯长连接协议设计思路

融云 RongCloud

即时通讯 协议

解析 RocketMQ 业务消息--“顺序消息”

阿里巴巴中间件

阿里云 RocketMQ 云原生 消息队列

浅谈 malloc 函数在单片机上的应用

矜辰所致

malloc 内存管理 8月月更

基础+进阶+源码+实战,阿里SpringCloud Alibaba全解手册限时开源~

Java全栈架构师

程序员 面试 微服务 架构师 SpringCloud

画出“伦勃朗光线”:vivo的夜色4K探索之旅

脑极体

蛇行矩阵 蛇形填数 回形取数 蛇行系类(C语言详解+图解)

Five

c 算法题 8月月更

企业即时通讯怎样为企业实现移动办公效率的极致化?

BeeWorks

兆骑科创双创服务平台,留学生海外创新创业大赛,人才引进

兆骑科创凤阁

打补丁是什么意思?如何快速对云主机批量打补丁?用什么软件?

行云管家

运维 云主机 IT运维 打补丁

DPDK性能影响因素分析

C++后台开发

后台开发 虚拟化 DPDK VPP C++开发

OceanBase&ChunJun联合Meetup丨邀您齐聚杭州,共享开源盛会

袋鼠云数栈

全网独一份!清华大牛联合众多一线大厂架构师整合的Java面试突击手册开源

程序员小毕

程序员 程序人生 JVM 高并发 java面试

Python自学教程3-英语不好,变量怎么命名

和牛

Python 测试 8月月更

自从外包干了七年,废了.....!

退休的汤姆

Java 面经 社招 Java工程师 秋招

尹博学:OceanBase Cloud正式开服,助力全球中小企业数智化升级

OceanBase 数据库

袋鼠云思枢:数栈DTinsight,创新升级,全新出发,驶入数智转型新赛道

袋鼠云数栈

IoT亿级设备接入层建设实践——实践类

阿里云AIoT

安全 网络协议 物联网 存储 网络架构

面试半月,阿里三面挂在微服务,我整个人直接麻了

Java永远的神

程序员 微服务 程序人生 Java 面试 架构师

企业统一门户 | WorkPlus深度集成,优化企业管理模式

BeeWorks

兆骑科创高层次人才引进服务平台,创业大赛,云路演

兆骑科创凤阁

IoT设备消息洪峰怎么扛? 阿里云AIoT消息队列深度解读——实践类

阿里云AIoT

nosql 算法 物联网 存储 消息中间件

A tour of gRPC:08 - gRPC 反射 与 Evans 客户端

BUG侦探

gRPC RPC protocolBuffer

2022年十大知名堡垒机品牌你真的知道吗?

行云管家

网络安全 数据安全 堡垒机 堡垒机品牌

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