写点什么

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:006499

评论

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

QLab Pro for Mac多用户协作系统

Mac相关知识分享

测评通义灵码,如何实现微信表情、 AI 语音笔记等小功能?

阿里云云效

阿里云 云原生 通义灵码

国产远控软件中,为什么我倾向于选择向日葵?

科技热闻

IDA Professional for mac 反汇编逆向神器 2024最新破解版

理理

一文总览 CES 升级新特性,全面了解云上的资源使用

华为云开发者联盟

云监控 ces

在线视频和音频下载软件PullTube for Mac

Mac相关知识分享

音频下载软件

JProfiler:识别和解决Java应用程序的性能瓶颈和问题

理理

Xcode性能大飞跃!更快的编译速度,更低的内存占用,为你的创意加速!

理理

掌握市场先机:淘宝API如何助力企业实时洞察商品动态

代码忍者

API 测试 pinduoduo API

音频采样器Native Instruments Kontakt 7最新版:解锁海量高品质音色库!

理理

测评通义灵码,如何实现微信表情、 AI 语音笔记等小功能?

阿里巴巴云原生

阿里云 云原生 通义灵码

HTTP 客户端:RestClient、WebClient、RestTemplate

FunTester

Springboot中自定义监听器

不在线第一只蜗牛

Java spring Spring Boot

苹果mac电脑剪切板管理神器:Paste for Mac中文版

理理

Mac菜单栏管理工具:Bartender 5

理理

首届云原生编程挑战赛总决赛冠军比赛攻略_greydog.队

阿里云天池

Topaz Gigapixel AI 一键激活版 工智能图片无损放大工具

理理

全面升级的PDF编辑和管理软件:Adobe Acrobat Pro DC 2024中文直装版

理理

vivo首登2024凯度BrandZ最具价值中国品牌100强,科技与人文关怀并重

财见

苹果mac电脑微信客户端插件WechatTweak:实现了微信的多开和消息防撤回

理理

一文看懂什么是架构

EquatorCoco

架构

解读 GaussDB (for MySQL) 冷热存储分离实现原理

华为云开发者联盟

2024年金九银十最全 Java 面试八股文(真实,高频,有详细答案)

采菊东篱下

Java 面试 #程序员

与非网第三届"物联网技术论坛"将于9月18日在线举办

财见

多种嵌入式系统开发需求阻碍平台工程发挥最大价值

财见

随着全球制造商的紧缩,全球采购活动以2023年十二月以来最强劲的速度收缩:GEP 全球供应链波动指数

财见

复赛总榜TOP1方案Champion Chasing Boy分享

阿里云天池

运维安全审计系统厂家有哪些?推荐哪家?

行云管家

运维 行云管家 安全运维

iStat Menus for mac(iStat Menus激活码):轻松掌握mac电脑性能

理理

上升4名 科大讯飞上榜2024凯度BrandZ最具价值中国品牌百强榜第39名

财见

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