为什么使用Dojo toolkit的十大原因
日期:2012-8-22 来源:GBin1.com
最强大但是使用量却大大低于预期的Javascript工具类库肯定是:Dojo Tookkit。几乎所有的javascript框架或者类库都许诺你可以实现任何功能,但是Dojo是最具有此类话语权的类库。在这篇文章中,我们将从十个不同的角度来分享,为什么你应该在你的web项目中开始使用Dojo toolkit。
原因一:模块化和AMD模块加载机制
随 着web技术的发展,客户端的javascript越来越复杂,为了更好,更快运行我们的js应用,我们需要模块化我们的程序。不使用异步加载的日子应该 结束了。Dojo toolkit一直都引以骄傲他们的模块化设计,使用dojo.require来动态的加载页面资源。 虽然有一个跨域选项是异步的饿,缺省的加载javascript资源的方法是同步的。
Dojo已经迁移到了异步加载器上,由Rawld Gill开发,可以方便的异步加载所有资源,很大程度的提高了速度。为了加载js资源,你可以使用如下代码:
// require方法指导加载器去加载第一个数组的资源 // 如果资源已经被加载,缓存的对象会被使用 require( // 用来加载的模块 ["dojo/on", "dojo/touch", "dijit/form/Button", "dojo/domReady!"], // 一个回调函数用来使用参数来加载模块 // 必须添加到和加载时一样的顺序 function(on, touch, Button) { // 加载后执行其它 });
为了定义一个模块,使用如下模式:
// Using 'define' instead of 'require' because we're defining a module define( // Again, an array of module dependencies for the module we'd like to build ["dojo/aspect", "dojo/_base/declare", "dijit/layout/BorderContainer"] // Again, a callback function which should return an object function(aspect, declare, BorderContainer) { // Return a module (object, function, or Dojo declared class) return declare("mynamespace.layout.CustomBorderContainer", [BorderContainer], { // Custom attributes and methods here }); })
这里我们使用简单的define方法来定义,基本上所有的AMD加载器都使用,非常简单的结构化方式。很像require,所以使用非常简单。所有列出的有 依赖的数组项目都在callback运行之前调用。通常callback返回一个方法或者对象用来展现模块。一个简单的模式快速加载,管理模块,允许开发 人员加载他需要的部分。
Dojo toolkit的特性丰富的加载器提供了插件,例如domReady,用来监听DOM,并且可以检测是否有相关JS。
.......
欢迎访问GBin1.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架