2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

评论

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

精彩抢先看!博睿数据将亮相第二十七届GOPS 全球运维大会上海站 !

博睿数据

“他她它”深度体验:京东的“万能”工具箱,装进一个有趣的“灵魂”

Alter

出海社交 AI助手

基于 eBPF 技术打造的 LightAPM 应用监控,效果如何

乘云数字DataBuff

监控 ebpf LightAPM

什么是UDFScript用户自定义脚本

天翼云开发者社区

CDN

一种CDN动态加速首次访问加速方法

天翼云开发者社区

CDN

代码生成之外,AI 提效研发的“最短路径”在哪里?|DevChat Tester 产品手记

思码逸研发效能

研发效能 API测试 智能测试 API测试工具 思码逸

哈尔滨等保测评:核心知识与实践要点

等保测评

局域网聊天工具,一体化安全办公轻松管理

BeeWorks

即时通讯 IM 私有化部署

观测云产品更新 | 安全监测、监控器、管理、异常追踪、查看器等

观测云

产品迭代

大数据-107 Flink Apache Flink 入门全解:流批一体的实时计算引擎 从起源到技术特点的全面解析

武子康

Java 大数据 flink spark 分布式

哈尔滨等保测评:新兴技术适配下的安全升级

等保测评

天润融通ZENAVA重磅发布:让AI成为客服和营销的核心生产力

天润融通

鸿蒙应用开发从入门到实战(十五):线性布局案例

程序员潘Sir

鸿蒙 HarmonyOS

新闻速递丨Altair 与美国威奇托州立大学国家航空航天研究所签署战略备忘录,加速航空航天领域创新步伐

Altair RapidMiner

数字孪生 仿真 CAE hyperworks 航空航天

WPS 365联手小米芯片:守护百万研发文档安全,评审效率提速77%

极客天地

HSV - RGB 来点实际的

Miracle

告别复杂代码!用Dify+Bright Data,可视化搭建高可靠AI数据抓取流水线

阿Q说代码

工作流 dify 亮数据

区块链Web3系统的开发费用

北京木奇科技有限公司

区块链开发 软件外包公司 web3开发

CST软件抗反射超材料SRR涂层 --- 反射系数,反射率,相位, Floquet,THz

思茂信息

cst CST软件 CST Studio Suite

云栖2025 | 人工智能平台 PAI 年度发布

阿里云大数据AI技术

人工智能 阿里云 云栖大会 PAI

如何使用极限网关实现 Elasticsearch 集群迁移至 Easysearch

极限实验室

elasticsearch Gateway 数据迁移 极限网关 easysearch

借助人工智能提升工作效率,打造自己的智能体工作流

测试人

重复对象:媲美Figma旋转复制,让UI设计更出彩!

职场工具箱

效率工具 设计师 figma ui设计 在线设计工具

Parameter ‘**‘ not found. Available parameters are [0, 1, param1, param2]解决办法

刘大猫

人工智能 云计算 大数据 算法 物联网

GPU 网络通信基础,Part 1(横向与纵向扩展;训练中的通信环节...)

Baihai IDP

AI gpu LLM GPU网络通信

AI 英语口语 APP 开发费用

北京木奇科技有限公司

软件外包公司 AI英语学习

城市一张网,以数据之桥擎托未来

脑极体

AI

黑龙江二级等保:助力区域网络安全水平整体提升

等保测评

让GPU更轻盈 让推理更流畅|焱融YRCache双异步技术激活AI新价值

焱融科技

AI 大模型 推理模型 KVCache

智慧化商品运营:数据科学与人类创意的完美融合

第七在线

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