2011-06-23 68 views
0

我是新来的道场风格编码。习惯了纯JavaScript和jQuery风格。搜索并获得一些结果,如道场风格编码

  • Dojo与闭包编译器一起使用时效果最好。
  • 先进道场比程序类型的更多OO

我在与

  • dojo.require()的问题 - 每当我下载道场插件,我得到的错误 - 不是404找到。一半的时间用于开发,以解决这个问题,获取js文件并将其放置在位置。
  • 是否有可能在jQuery中扩展dojo对象,我们使用内部定义为jQuery.fn = jQuery.prototype的$ .fn.some函数来扩展根jQuery对象。 Dojo中有类似的东西吗?
  • 我觉得dojo的文档不如jQuery的。
  • 什么是dijit和dojox?当我从Google api库导入dojo.js,然后在dojo中使用插件时,这些dijit和dojox总是有问题。

需要一些帮助。我将几个从jQuery插件转移到dojo的插件。这些插件在dojo中不可用。

我觉得在使用dojo进行编码时必须使用整个库,然后编译它以获取优化的代码,并将其导出到任何需要的位置。我在这里吗?如果没有,我做错了什么?

+0

我认为在你的文章中有三个不同的问题(你的第三个项目符号点不计算在内),第一个问题可能无法在没有看到你的代码的情况下回答。否则,使用'dojo.extend()'扩展原型,Dijit是UI库,DojoX是扩展库。参见[参考指南](http://dojotoolkit.org/reference-guide/)。 –

回答

8

1)dojo.require通过XHR请求自动下载需要的文件。你不需要手动下载任何东西。如果你使用google CDN,所有的课程都应该从那里下载,我建议你下载完整的软件包到你的本地应用程序并从那里使用它。稍后您可能需要创建一个Build。您还应该阅读Starting with 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(){}就像普通的JavaScript一样。但我不会推荐。如果升级到更高版本的Dojo版本,可能会造成问题。

jQuery和Dojo完全不同。如果在jQuery中输入类似$('.data')的东西,它将获取所有类为“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,布局系统,Widgets,数据抽象以及其他很多高层次的东西。如果你从来没有用过这样的东西,可能很难从它开始,因为它包含了很多东西。 jQuery不提供这样的东西。所以有时候从它开始肯定会更容易。

有关文档看看:

4)道场是使用命名空间3在JavaScript dojodijitdojox的工具包。 dojo命名空间包含几乎所有人都会用到的东西,比如像I18N,L10N的框架,dojo.datadojo.store等模型抽象以及其他许多东西。

只是加载“dojo.js”文件的方式不给你dojo提供的一切。

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

另请参阅Dijit Theme Editor以查看Dijit包含的内容。包括布局在内的完整网站是基于dijit完成的。

dojox命名空间包含许多不适合dijit或实验的额外功能。但并非一切都是实验性的。您可以找到诸如dojox.grid.DataGriddojox.chartingStart ChartingAdvanced Charting)或诸如dojox.gfx之类的系统来创建使用SVG,Canvas,VRML,Silverlight或Flash的跨浏览器图形。

只需查看Beyond Dojo's Core即可获得dijit和dojox包含的(小)概览。

+0

感谢您提供了一个深思熟虑的答案。 @Boopathi,Dojo将会更加接近JavaScript的风格,所以你应该对这些方面的语法更加熟悉。正如Sid所说,不要考虑如何像jQuery一样使用Dojo。你说你自己根据你的研究得知dojo提供了更好的OO功能,所以它应该鼓励你像OO开发者一样思考。就我个人而言,我并不认为链接命令的提升是一个又一个OO,对我来说似乎是非常程序化的。 Dojo是一个强大的工具包,它需要一些时间。 –