2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

面试不再慌!苦学这份2023最全的Java性能优化实战笔记,已涨17k

Java你猿哥

Java 面试 JVM 多线程 Java性能优化

Python的常见数据结构

timerring

Python

GitHub爆赞!阿里P9架构师的JDK源码笔记也太强了!

Java 源码 jdk 高并发

什么是数据库分片?

Java架构历程

Java 数据库 三周年连更

运行第一个程序Hello world

鸿蒙之旅

OpenHarmony 三周年连更

分布式事务的21种武器 - 5

俞凡

架构 云原生

面试官:一千万的数据,你是怎么查询的?

Java8 lambda 表达式 forEach 如何提前终止?

Java你猿哥

Java ssm java8 foreach

字节速通!这份软件测试八股文还怕不能拿offer?你值得拥有

Java你猿哥

MySQL 面试 软件测试 计算机 八股文

Redis数据类型及底层大剖析

Java 数据库 redis 缓存

三种常用的以太网端口链路类型:Access、Hybrid和Trunk

wljslmz

网络 三周年连更

Alibaba内网“疯狂”传阅的P8开源出的SpringBoot入门到进阶小册

Java spring 微服务 Spring Boot 框架

一文了解获得 Zebec Labs 投资的 Coral Finance,空投计划或在不久推出

西柚子

爆赞!GitHub上久经不衰的经典教程:Springboot精髓参考指南手册

Java spring 微服务 Spring Boot 框架

基于Alpine制作Tomcat的Docker镜像

清康

程序性能提高了5倍!开源阿里500页的Java程序优化笔记

Java你猿哥

Java 面试 性能优化 Java虚拟机 Java性能优化

分布式事务的21种武器 - 4

俞凡

架构 云原生

SpringBoot核心配置全面总结

小小怪下士

Java 程序员 后端 springboot

为什么《魂斗罗》只有128KB却可以实现那么长的剧情?

Java你猿哥

Java 编程 程序员 汇编语言 优化技术

声网 Token 鉴权机制,以及常见的问题

声网

五张图带你看透Redis数据结构

我懵了,如果要存 IP 地址,用什么数据类型比较好?

Java你猿哥

Java MySQL 数据库 ssm IP

速通字节!阿里p8耗时6个月打造的java面试手册,看到直呼“面试有手就行”

Java你猿哥

Java spring 微服务 JVM 多线程

K8s 安全是云安全的未来

HummerCloud

Kubernetes k8s

https和http有什么区别?

海拥(haiyong.site)

三周年连更

ZooKeeper 避坑指南: ZooKeeper 3.6.4 版本 BUG 导致的数据不一致问题

阿里巴巴云原生

zookeeper 阿里云 开源 云原生

MATLAB与Simulink

袁袁袁袁满

三周年连更

MySQL深分页问题原理与三种解决方案

Java MySQL 数据库

太强了!牛客网开源1240页字节算法实录,无意中掀起GitHub刷题热潮

Java 数据结构 算法 LeetCode

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