QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

评论

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

重新定义内容创作和教育的新范式

百度开发者中心

人工智能 文心一言 文心大模型‘

业务不想停机,就得这么实现MongoDB迁移

NineData

mongodb 数据迁移 NineData MongoDB迁移 全量数据迁移

在线找 K8s 学习搭子,急!

阿里巴巴云原生

阿里云 云原生

服务器显卡:驱动高性能计算和人工智能应用

天翼云开发者社区

服务器

公众期待开放的自然语言处理神器

百度开发者中心

人工智能 ChatGPT 文心一言

ClickHouse在腾讯游戏营销效果分析中的探索实践

腾讯云大数据

Clickhouse

OpenHarmony使用ArkUI Inspector分析布局

OpenHarmony开发者

OpenHarmony

“AI+算力”为出海企业打上了一剂“强心针”

千流出海

媒体 采访 出海

蚂蚁集团混沌工程 ChaosMeta V0.5 版本发布

ChaosMeta

云原生 测试 混沌工程 容灾 攻防演练

服务器使用必备条件、操作步骤及实践步骤详解

天翼云开发者社区

服务器

【玩转鲲鹏DevKit系列】如何快速迁移软件包?

华为云开发者联盟

开发 华为云 鲲鹏 华为云开发者联盟 企业号9月PK榜

时尚行业的前沿与挑战

百度开发者中心

人工智能 ChatGPT 生成式AI 文心一言

文心一言 VS 讯飞星火 VS chatgpt (86)-- 算法导论8.2 3题

福大大架构师每日一题

福大大架构师每日一题

你应该知道的几个大数据平台相关术语

行云管家

数据中台 数据安全 大数据平台

细数2019-2023年CWE TOP 25 数据,看软件缺陷的防护

华为云开发者联盟

安全 后端 华为云 华为云开发者联盟 企业号9月PK榜

麒麟云容器运行时优化之容器停止优化

麒麟云

Kubernetes 云原生 银河麒麟云原生操作系统

软件测试/测试开发丨Selenium Web自动化多浏览器处理

测试人

Python 软件测试 自动化测试 测试开发 selenium

Kruise Rollout:基于 Lua 脚本的可扩展流量调度方案

阿里巴巴云原生

阿里云 云原生

入坑ThreadLocal,这一篇文章就够了

树上有只程序猿

Java ThreadLocal

引领未来,挑战与机遇并存

百度开发者中心

人工智能 图像识别 文心大模型

AI应用如何进行测试?

互联网工科生

人工智能 AI

开发指导—利用CSS动画实现HarmonyOS动效(二)

HarmonyOS开发者

HarmonyOS

数字先锋|携手九江市自然资源局,天翼云助力自然资源管理走向“智治”新路

天翼云开发者社区

人工智能 云计算

做等保测评的公司有多少家?哪里可以查到?

行云管家

网络安全 等级保护 等保测评 等保测评机构 行云堡垒

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