InfoQ

新闻

Dojo 0.9发布最终版并有巨大的性能提升

作者 Scott Delap and James Estes译者 张海龙 发布于 2007年9月17日 上午12时2分

社区
Java
主题
Web框架
标签
AJAX,
Dojo

Dojo 0.9最终版已经发布,发布时间距相应Beta版发布不到七周。它有如下重要特性:

Dijit
  • 所有UI部件使用统一外观
  • 所有Dijit部件都具备的a11y(可访问性)和i18n(国际化)特性
  • CSS驱动的成熟主题系统,带有多个高质量主题
  • 大幅度的系统级性能提升
  • 数据绑定UI部件
  • 为编写轻量级UI部件所准备的声明
  • 一个允许任意类实例而不仅限于UI组件的全新页面解析器
Core
  • 减少了的API范围(更容易记忆和使用)
  • dojo.query()方法始终可用,返回真正的数组
  • 重新编写的高性能拖放(Drag & Drop,DnD)系统
  • 组件的基础(dojo.js)仅有25K大小(经由gzip压缩后的大小)
  • dojo.data的API已定稿
  • 新的构建系统
  • 可同时用于CLI和浏览器的新测试套件
  • dojo.behavior基于dojo.query, 并已被标识为稳定版本
  • Dojo Base中超好的支持彩色动画的API(始终可用)
  • 所有人们从Dojo时代开始就盼望的特性(RPC、JSON-P、JSON、i18n、格式化工具)
DojoX
  • 较早的实验特性得到了高质量的实现:gfx(可移植性2D画图)、数据通路、离线、存储、cometd等等
  • dojox.gfx已经包含了对Sliverlight的支持
  • 还有更多的特性和改进,这里暂不一一赘述

性能的提升看来非常显著

Dijit应用尺寸只有0.4版的一半大,页面装载时间更快:UI部件代码中已没有附加JavaScript

Daniel Ruspini在博客上写出了他上月较早前在Ajax体验大会中对0.9版的印象

[……]尽管我以前听到许多关于0.9的事情,但这是我第一次看到这些变化和关于实际尺寸、性能的数字。0.9版的想法是让由于以下原因而变得臃肿不堪的代码量减少:支持尽可能多类型的浏览器、允许贡献者添加部件到部件库中、支持向后兼容的代码。后来他们发现,有30%之多的代码是缩减掉的。UI部件也写得风格迥异,并在使用中也不全然一致,还有一些UI部件是大部分开发者用不着的。有一些很流行的组件则尝试履盖更多可能的用例,这导致它们变得很慢(如按钮)[……]

Dojo 0.9和先前任意一个Dojo发布版本都不兼容。不过,希望从0.4迁移到0.9的用户,可以访问对应的移植指南

查看英文原文:Dojo 0.9 Goes Final with Significant Performance Improvements

没有回复

回复

独家内容

专访开源项目Amoeba架构师陈思儒

DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。

使用JSF、Ajax和Seam开发Portlets(2/3)

作为三期系列文章的第二部分,本文延续了上一期内容,介绍了RichFaces,包括如何把RichFaces集成到之前提到的示例应用中、如何部署RichFaces porlet和RichFaces的多种特性和功能。

Jeff Barr谈论Amazon Web服务

Amazon Web Services(AWS)的传道者Jeff Barr讨论了SimpleDB、S3、EC2、SQS、云计算、Amazon的不同服务如何与应用交互、AWS的起源、SimpleDB和微软SQL Server Data Services、AWS cloud的全球化、三月份的AWS停机。

用Erlang实现领域特定语言

Erlang的并发模型很有名,它的健壮性也很有名。但其他方面呢?在这篇文章里,Dennis Byrne演示了如何用Erlang建立内部DSL。

基于Rails的企业级应用剖析

本视频主要以FreeWheel为例,对一个基于Rails的企业级应用进行了剖析。其中包括:FreeWheel的架构、部署、数据库的问题、REST API、敏捷开发过程、如何去写测试以及持续集成等等。

JavaFX技术预览

JavaFX显示了Sun的Java系列产品市场方向的一个重大转变。随着1.0版的即将发布,InfoQ以JavaFX预览版为参考,与Sun高级工程师Joshua Marinacci探讨了即将发布的1.0正式版。

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。