Dojo风格编码

Boo*_*jaa 0 javascript jquery dojo

我是dojo风格编码的新手.习惯了纯粹的javascript,然后是jQuery风格.搜索并得到一些结果,如

  • 与闭包编译器一起使用时,Dojo效果最佳.
  • 高级dojo比程序类型更多OO

我有问题

  • dojo.require() - 每当我下载dojo的插件时,我都会收到错误 - 404 NOT FOUND.开发的一半时间用于修复此问题,获取js文件并将其放置在位置.
  • 并且可以像在jQuery中一样扩展dojo对象,我们通过使用内部定义为的$ .fn.somefunction扩展根jquery对象jQuery.fn = jQuery.prototype.在道场有类似的东西吗?
  • 我觉得dojo的文档不如jQuery的文档好.
  • 什么是dijit和dojox?当我从谷歌api库导入dojo.js,然后在dojo中使用插件时,这些dijit和dojox总是一个问题.

需要一些帮助.我正在将几个插件从jQuery移植到dojo.这些插件在dojo中不可用.

我觉得在使用dojo编码时必须使用整个库,然后编译它以获得优化的代码,并将其导出到所需的时间.我在这儿吗?如果没有,我做错了什么?

Dav*_*aab 8

1)dojo.require通过XHR请求自动下载所需的文件.您无需手动下载任何内容.如果您使用谷歌CDN所有类应从那里下载,我建议将完整的包下载到您的本地应用程序并从那里使用它.稍后您可能想要创建一个Build.您还应该阅读从Dojo开始

2)像jQuery一样增强dojo没有任何意义.dojo只是顶部的命名空间下它,你有很多像班dojo.Animation,dojo.behavior,dojo.Deferred,dojo.NodeList和其他类的很多.有些是像dojo.connect()和的功能dojo.style().

如果你想创建一个新的类,请查看dojo.declare.您还可以在dojo"命名空间"或其他命名空间下创建新类.

如果要向dojo命名空间添加新函数,只需键入dojo.new_function = function(){}Like normal JavaScript即可.但我不建议这样做.如果升级到以后的Dojo版本,它可能会出现问题.

jQuery和Dojo完全不同.如果你$('.data')在jQuery中键入类似的东西,它会使用类"data"获取所有dom节点,并返回一个在jQuery类中包装的新对象.

在Dojo中,您可以使用dojo.query('.data')相同的效果.但它返回该类型的新对象dojo.NodeList.如果要为链式功能添加新功能,则需要扩展dojo.NodeList.

已经存在一些扩展,例如dojo.NodeList-fx将动画效果添加到dojo.NodeList类中.如果使用dojo.require()dojo 加载类.Nodelist将自动扩展.查看Extend dojo.NodeList以获取更多信息.

3)文档非常好,您提出的所有内容都已记录在案,我提供了一些您在Dojo主页上完整查找的资源.不同之处在于Dojo是一个完整的工具包,包括GUI,布局系统,小部件,数据抽象和许多其他非常高级的东西.如果你从未使用过类似的东西,那么很难从它开始,因为它包含了很多东西.jQuery没有提供这样的东西.所以有时候开始使用它肯定会更容易.

有关文档,请查看:

4)道场是使用命名空间3在JavaScript的工具包dojo,dijitdojox.该dojo命名空间包含了几乎每个人都使用以后,像国际化,本地化,模型抽象像一个框架的东西dojo.data还是dojo.store和很多其他的东西.

只是加载"dojo.js"文件,不会给你dojo提供的一切.

dijit命名空间包含了很多Dojo小部件.dijit命名空间中的所有小部件都具有完整的I10N和L10N支持.dijit包含对话框,布局系统,小部件,如日历,按钮,选择字段,无线电字段,dijit.Editor下的完整WYSIWYG编辑器.

另请参阅Dijit主题编辑器以查看Dijit包含的内容.包含布局的完整站点基于dijit完成.

dojox命名空间包含了很多的不适合在额外的功能dijit或是实验.但并非一切都是实验性的.您可以找到dojox.grid.DataGriddojox.charting(开始图表,高级图表)或像dojox.gfx这样的系统来创建使用SVG,Canvas,VRML,Silverlight或Flash的跨浏览器图形.

只需了解Beyond Dojo的核心,即可获得dijit和dojox所包含的(小)概述.