写点什么

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

评论

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

【AI流程应用】智能知识库搭建与实战应用

JEECG低代码

AI应用 流程编排 JeecgBoot #AIGC AI 大模型

AI 极客低代码平台快速上手 --生成Python代码

华哥的全栈次元舱

Java Python vuetify 纯血鸿蒙 AIGC低代码平台

HarmonyOS5云服务技术分享--云数据库使用指南

莓创技术

北森酷学院发布新一代AI Learning平台,企业学习开启Agents时代

ToB行业头条

AI SaaS

HarmonyOS5云服务技术分享--云存储SDK文章整理

莓创技术

HarmonyOS5云服务技术分享--云函数预加载文章整理

莓创技术

从概念走向落地,深圳率先给出新质互联网城市建设路线图

Alter

释放生产力潜能 AI-Hub智能数据中枢引领企业数字化转型

郑州埃文科技

电脑浓雾之上,一轮鸿蒙之火

脑极体

AI

Arthas vmoption(查看和修改 JVM里诊断相关的option)

刘大猫

JVM 监控 Arthas 监控工具 vmoption

表答-开启数据分析新范式

梦数技术团队

人工智能 AI 数据分析 爬虫 分析

HarmonyOS5云服务技术分享--应用预加载提速指南

莓创技术

数据要素如何重构人力资本升级

郑州埃文科技

AI 极客低代码平台快速上手 -- 生成鸿蒙代码

华哥的全栈次元舱

低代码平台 vuetify 纯血鸿蒙 AI极客 AIGC低代码平台

HarmonyOS 如何实现传输中的数据加密

网罗开发

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

2025 年 6 个最佳开源工单系统推荐

NocoBase

开源 低代码 无代码 工单系统 IT工单管理

HarmonyOS5云服务技术分享--云缓存快速上手指南

莓创技术

HarmonyOS5云服务技术分享--云存储指南

莓创技术

征程 6 J6E/M linear 双int16量化支持替代方案

地平线开发者

自动驾驶; 算法工具链 地平线征程6

构建安全护盾:HarmonyOS 应用的数据安全审计与日志管理实战

网罗开发

鸿蒙 HarmonyOS HarmonyOS NEXT

全球第一 AI 录音笔品牌,如何搭建运营与客服系统?

NocoBase

开源 AI 低代码 无代码 客服系统

HarmonyOS5云服务技术分享--Serverless搭建抽奖

莓创技术

Spring AI 1.0 正式发布!核心内容和智能体详解

王磊

数据要素配置如何驱动城市经济韧性的多元模式

郑州埃文科技

数据要素

安全可控的AI底座:灯塔大模型应用开发平台全面实现国产信创兼容适配认证

中烟创新

AI 极客低代码平台快速上手 -- 生成Vuetify代码

华哥的全栈次元舱

Java Python 低代码平台 vuetify 纯血鸿蒙

HarmonyOS5云服务技术分享--Serverless抽奖模板部署

莓创技术

什么是SDK集成,与API有什么区别?白板SDK集成攻略分享!

职场工具箱

sdk 在线白板 办公软件 SDK 教程 AIGC

通过群聊、文档、会议等内容即可生成答案,飞书发布AI功能知识问答

ToB行业头条

飞书

AI 极客低代码平台快速上手 -- 生成Java代码

华哥的全栈次元舱

Java Python vuetify 纯血鸿蒙 AIGC低代码平台

采用XIRAID引擎和Kioxia PCIe5驱动器的虚拟环境中PostgreSQL的高性能存储解决方案

Sergey Platonov

性能测试 高性能计算, 数据库· 安装指南

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