《HarmonyOS:领航者说》技术公开课来啦,大咖分享、实战解码,不容错过 了解详情
写点什么

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

评论

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

有哪些方法可以提高企业的文档管理水平?

Baklib

文档 文档管理

干货 | 测试人职场晋升“潜规则”:15 年经验资深测试经理的职场忠告

霍格沃兹测试开发学社

Kyligence 联合创始人兼 CEO 韩卿荣获金融科技风云人物奖

Kyligence

金融科技大会

知识管理,知识经济时代必不可缺的工具

Baklib

知识管理 知识 知识经济

干货 | 环境问题还是测试的老大难?两个步骤轻松搞定

霍格沃兹测试开发学社

干货| app自动化测试之Andriod微信小程序的自动化测试

霍格沃兹测试开发学社

从负载均衡到路由,微服务应用现场一键到位

Java-fenn

Java

openGauss内核分析:SQL by pass & 经典执行器

Java-fenn

Java

干货 | 读懂 Appium 日志,让测试效率翻倍!

霍格沃兹测试开发学社

干货 | 初窥 Pytest 测试框架,基础薄弱也能轻松 hold 住

霍格沃兹测试开发学社

干货 | 录制你的第一个web 自动化测试用例

霍格沃兹测试开发学社

2022 世界人工智能大会|人工智能与开源技术先锋论坛成功举办

Kyligence

人工智能大会 先锋科技论坛

干货 | 移动端App自动化之App控件定位

霍格沃兹测试开发学社

干货 | 背熟这些 Docker 命令,面试再也不怕啦~

霍格沃兹测试开发学社

干货 | 原来升职加薪的测试工程师都擅长做接口测试

霍格沃兹测试开发学社

干货 | 应用打包还是测试团队老大难问题?

霍格沃兹测试开发学社

解读《Benchmarking Hybrid OLTP&OLAP Database Systems》| StoneDB学术分享会

StoneDB

数据库 国产数据库 StoneDB 企业号九月金秋榜 9月月更

VS Code加码Java生产力,IDEA危险了

Java-fenn

Java

透过Redis源码探究Hash表的实现,你学废了吗?

Java快了!

2022年哪些工具适合设计企业产品手册?

Baklib

产品 产品手册

相约 ArchSummit 杭州站,参与官方评论赢取精美周边!

InfoQ写作社区官方

热门活动 ArchSummit

百度前端高频面试题(附答案)

beifeng1996

JavaScript 前端

力扣17 - 电话号码的字母组合【回溯、哈希映射、队列】

Fire_Shield

队列 深度优先搜索 9月月更

干货 | 谁懂这篇文,玩游戏还会卡顿?

霍格沃兹测试开发学社

干货 | 仅需4步,即可用 Docker搭建测试用例平台 TestLink

霍格沃兹测试开发学社

WAIC 2022 | 洞见科技CTO何浩:隐私计算统一底座赋能金融数字化转型

洞见科技

干货 | 利用 pytest 玩转数据驱动测试框架

霍格沃兹测试开发学社

干货 | 在Docker 上搭建持续集成平台 Jenkins

霍格沃兹测试开发学社

WAIC 2022 | 洞见科技王湾湾:隐私计算在金融产业的应用与挑战

洞见科技

干货 | 解决 App 自动化测试的常见痛点(弹框及首页启动加载完成判断处理)

霍格沃兹测试开发学社

干货 | 一文搞定 uiautomator2 自动化测试工具使用

霍格沃兹测试开发学社

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