写点什么

Dojo 框架:误解与现实

  • 2010-12-23
  • 本文字数:8828 字

    阅读完需:约 29 分钟

随着 Ajax 技术的流行,越来越多的 Web 应用使用 Ajax 技术来提高用户体验。使用 Ajax 技术的一个重要优势是不需要额外的浏览器插件支持,只需要使用浏览器原生的 API,并利用 JavaScript 来操作即可。使用原生 API 时会遇到的两个比较大的问题是浏览器兼容性和底层 A 代 PI 接口带来的编程复杂性。同样的功能在不同的浏览器上的实现方式是存在差异的。如果一个应用希望支持不同的浏览器,则开发人员需要添加很多的浏览器检测或嗅探的代码。比如同样的事件绑定功能,在 IE 上使用 attachEvent ,而在其它浏览器上则使用 addEventListener 。除了兼容性问题之外,浏览器提供的原生 API 的接口一般都比较适合用来执行细粒度的操作。当需要完成一些相对复杂的操作的时候,使用原生 API 接口会使得代码比较繁琐。以一个 DOM 查询为例:在当前文档树中查找给定 ID 的节点的所有给定标签的直接子节点。对于这样一个查询,使用原生 DOM API 的话,则会需要使用 getElementById 来查找节点,通过 childNodes 来获取子节点列表以及比较节点的标签名称等。所要求的码量会比较大。

JavaScript 框架的出现,正是为了解决这两个比较大的问题,而不同的 JavaScript 框架也提供了各自额外的附加价值。目前可以使用的 JavaScript 框架非常之多,比较流行的也有十多种。这些流行的JavaScript 框架包括 jQuery Dojo YUI MooTools Prototype Ext JS Google Closure 等。这些不同的框架有着各自不同的优势和不足,也有着对应的不同的适用情景和范围。由于工作的关系,笔者对 Dojo 框架的使用最多,对于其它框架也有一定的了解。本文的目的是希望澄清一些对于 Dojo 框架的误解,从而帮助开发人员选择合适的框架。

在开始之前,首先简要介绍一下 Dojo 框架的基本结构。Dojo 框架由四个部分组成:Dojo 基本库、核心库、Dijit 和扩展库。基本库包含最基本的功能,核心库是基本库的扩展,Dijit 是用户界面库,而扩展库则是各式各样的扩展组件。

满足 Ajax 应用开发基本的需求

Dojo 和其它框架一样,都试图满足 Ajax 应用开发中的最基本的需求。这些基本的需求包括前面提到的浏览器兼容性和原生 API 的接口粒度问题,以及一些典型的应用场景。具体来说,应该包括下面一些功能集:JavaScript 语言增强、XMLHttpRequest 封装、DOM 查询与操作和事件处理等。而浏览器兼容性体现在这些功能集在不同浏览器上的效果是一样的。

从 Dojo 框架来说,对这些功能集的支持是比较丰富的。在 JavaScript 语言增强方面,对数字、字符串、日期类型、数组和 JavaScript 方法等有很多的增强功能。在 I/O 传输方面,除了常用的 XMLHttpRequest 之外,还支持 iframe 和

2010-12-23 00:006603

评论

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

这一战,必战,若一去不返,便一去不返

霍太稳@极客邦科技

创业 项目管理 团队建设 InfoQ

网站架构方法

Ya

架构 方法论 网站 大型软件

JCJC错别字检测JS接口新增CORS跨域支持

田春峰-JCJC错别字检测

怎么写出bug的

三爻

回"疫"录(5):不见面,云拜年

小天同学

疫情 回忆录 现实纪录 纪实

人生一大误区:做到80%就不错了

池建强

个人成长 自我管理

我为什么不愿在公众号发文章,却愿在写作平台发

小天同学

微信公众平台 产品 反馈 写作平台

香港上市"失效"、传言申请科创板,聊聊半年亏损52亿的旷视科技 | IPO招股书系列(4)

赵新龙

IPO 旷视科技 上市 招股说明书 科创板

学会打破确定性思维,才能做得更好

松花皮蛋me

高效工作 10X工作法 精益开发

对开发人员有用的定律、理论、原则和模式

松花皮蛋me

Java 设计模式

死磕Java并发(5):线程详解,Java开发这么久,这些线程的基础知识你确定都会了?

Seven七哥

Java Java并发 线程

npm version 使用详解

Leo

大前端 npm 语义化 版本控制

程序员陪娃漫画系列——夜宵

孙苏勇

程序员 生活 陪伴 漫画

网络编程方法

Ya

方法论 网络编程 socket

媒体的经营 03 | 很显然,媒体卖广告是最没有前途的

邓瑞恒Ryan

创业 媒体 商业模式

专家的直觉和你的直觉

池建强

书摘 直觉

网站是什么?

insight

网站

深度工作

insight

读书笔记

3000字长文教你大数据该怎么学!

老蒙

Java 大数据 spark 学习 开源

稀缺:我们为什么会陷入贫穷与忙碌

insight

读书笔记

媒体的经营 02 | 媒体/内容行业的主要变现方式

邓瑞恒Ryan

创业 投资 商业

说说疫情下的新常态该怎么应对

CD826

疫情 新常态

您到底要说什么?

水色

小技巧:ssh -D 让终端访问或下载快一点

肖飞码字

Linux Shell

【奖项公布】致内测用户——亲爱的1号创作者们~

InfoQ写作社区官方

写作平台 1号创作者 奖品 热门活动

原创 | DDD与分层

编程道与术

【获奖名单公示】作为一名技术人,我为什么要写作?

InfoQ写作社区官方

程序员 写作 写作平台 热门活动

夏天将来,愿我们有足够的知识继续前进

Amon Lee

Java并发编程系列——线程的等待与唤醒

孙苏勇

Java Java并发 并发编程 线程

Gary的唠叨(二):先算是非,后算得失

小盖

Gary的唠叨 感悟

如何高效开会

熊斌

效率 效率工具

Dojo框架:误解与现实_Java_成富_InfoQ精选文章