武汉的开发者们注意啦!AI技术战略、框架以及最佳实战尽在Azure OpenAI Day 了解详情
写点什么

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

评论

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

Scrapy框架之Docker安装MongoDB教程。

百度搜索:蓝易云

mongodb Docker Linux Scrapy 云服务器

AI原生应用开发“三板斧”亮相WAVE SUMMIT+2023

飞桨PaddlePaddle

飞桨 文心一言 文心大模型

Archicad 27 for Mac(3D建模软件)v27.1.1 (4030)激活版

iMac小白

手把手入门 MO | 如何使用 DolphinScheduler 连接 MatrixOne

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

MO 2023 年度回顾

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

前后端开发的可视化编辑器

互联网工科生

软件开发 低代码 JNPF 前后端软件

Git将单个文件合并到指定分支教程。

百度搜索:蓝易云

git 云计算 Linux 运维 云服务器

PHP服务器监控与维护:确保长期稳定运行的方法

一只扑棱蛾子

服务器 PHP服务器

自编码器AE全方位探析:构建、训练、推理与多平台部署

不在线第一只蜗牛

代码 模型优化 AE 自编码

Navicat Data Modeler Ess for Mac v3.3.14中文激活版

iMac小白

低代码使用情况

这我可不懂

前后端分离 低代码 JNPF

每日一题:LeetCode-695. 岛屿的最大面积

半亩房顶

Go 面试 算法 矩阵 LeetCode

Acrobat Pro DC 2023 for Mac(PDF编辑器) 2023.006.20380永久激活版

mac

苹果mac Windows软件 PDF编辑和管理软件 Acrobat Pro DC

Navicat Charts Creator for Mac(Navicat图表创建器)v1.2.14激活版

iMac小白

拼多多商品详情数据接口(Pinduoduo.item_get)丨拼多多API接口

tbapi

拼多多API接口 拼多多商品详情数据接口 拼多多商品API接口 拼多多优惠券接口 拼多多到手价接口

小程序如何实现视频通话及互动直播功能?

Geek_2305a8

Navicat Charts Viewer for Mac(Navicat图表查看器)v1.2.14激活版

iMac小白

聚道云软件连接器带给服装行业客户的业务革新

聚道云软件连接器

【第七在线】时尚鞋服企业商品运营如何实现智能化?

第七在线

引领功能型对话大模型的部署实践革新

百度开发者中心

人工智能 nlp ChatGPT

我们一起聊聊MySQL 索引的底层逻辑

这我可不懂

MySQL 数据库

软件测试/测试开发丨软件测试基础概念 学习笔记

测试人

软件测试 测试开发

科兴未来|中国北京 · HICOOL 2024全球创业大赛招募启动

科兴未来News

智能连接,助力餐饮品牌实现商城订单自动同步

聚道云软件连接器

案例分享

MatrixOne 1.1.0 Release

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

MatrixOne 完成与飞腾处理器的兼容互认

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

利用虚拟线程重写自定义异步功能

FunTester

手撕Vuex-vuex实现原理分析

快乐非自愿限量之名

架构 Vue

一文读懂Kubernetes部署策略

高端章鱼哥

Kubernetes 部署

知识图谱企业图谱怎么做

悦数图数据库

知识图谱

软件开发外包风险如何避免,参考如下安全低风险的开发合作模式

软件开发-梦幻运营部

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