写点什么

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

评论

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

GLB/GLTF 模型压缩轻量化

3D建模设计

材质合批 材质修改 材质贴图 材质纹理

最佳实践 | 第七在线智能采购计划助力全渠道销售决策

第七在线

CNCF首个云原生多云容器编排项目Karmada正式晋级孵化

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟

数据驱动国有企业数智化转型,平台底座将发挥重要作用

用友BIP

数据驱动

模型放置到3D场景中后模型位置与鼠标选中的位置不一致怎么办?

3D建模设计

材质合批 材质修改 材质贴图 材质纹理

云桌面的应用场景及利弊

青椒云云电脑

云桌面 云电脑 云桌面系统

一招MAX降低10倍,现在它是我的了 | 京东云技术团队

京东科技开发者

缓存 性能优化 缓存优化 OHC

38 | 分治算法:谈一谈大规模计算框架MapReduce中的分治思想

鲁米

分布式基础概念-消息中间件[Kafka]

派大星

大数据 Java 面试题

11种编程语言中,返回多个不同类型的方法样例

华为云开发者联盟

编程语言 开发 华为云 华为云开发者联盟

桌面云的发展前景与机遇

青椒云云电脑

桌面云 云桌面 云桌面厂家

云桌面技术的革新

青椒云云电脑

桌面云 云桌面

认证LeSS实践者课程 - 2024.1,广州

ShineScrum捷行

大规模敏捷

如何创建逼真的3D模型

3D建模设计

材质修改 材质贴图 材质纹理

摆脱Excel 寻求现代零售智能化管理的出路

第七在线

第七在线(7thonline):助力零售业解决发展难题,驱动智能化转型

第七在线

京东哥伦布即时设计平台ChatGPT落地实践 | 京东云技术团队

京东科技开发者

前端 ChatGPT 即时设计

HarmonyOS:使用MindSpore Lite引擎进行模型推理

HarmonyOS开发者

HarmonyOS

光纤的连接

小齐写代码

如何删除/替换3D模型的材质贴图

3D建模设计

材质合批 材质修改 材质贴图 材质纹理

39 | 回溯算法:从电影《蝴蝶效应》中学习回溯算法的核心思想

鲁米

阿里云人工智能平台PAI多篇论文入选EMNLP 2023

阿里云大数据AI技术

AI

从技术角度分析如何选择灰度测试方式

Onegun

功能测试 灰度测试

JAVA基于物联网技术的智慧校园电子班牌原生微信小程序源码

源码星辰

智慧校园管理系统

云教室服务器配置详解

青椒云云电脑

云教室 云教室解决方案

中国如何才能出世界级零售企业?

第七在线

数据中台即服务——数据中台的四大支柱

用友BIP

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