- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难理解 dojo 风格的编码。我被它吸引的原因是它的类风格编码。我做过 AS 开发和一些 java,所以对它感兴趣对我来说是有道理的。我已经完成了一些 jquery 风格的 DOM 工作,但我需要为我正在启动的项目提供更多基于框架的设置。我的问题是我是否应该将所有内容创建为带有声明的类,然后在需要时要求它们。或者我可以像常规 javascript 模块一样使用命名空间编写闭包类型函数吗?我很困惑。
示例我想要一组负责管理数据的方法。然后我想要另一个处理特殊 ajax 调用的方法集合。我会在单独的 js 文件中为每组方法创建一个带有声明的类吗?然后,在我的应用程序类 app.js 中,我正在处理所有类的初始化,我是否需要在 dojo.ready(){} 之前使用这两个类然后,一旦调用了就绪方法,我就可以开始使用这些类。
在我出去道场之前,有人可以帮我把我带到这里吗?是否需要对该 js 文件发出加载请求,如果是这样,您始终必须使用ready 方法。如果是这样,最好在应用程序初始化开始时预先要求一堆类。
最佳答案
从技术上讲,对于您想要做的事情,您可以采用任何一种方法 - 使用 dojo.declare
或简单地创建一个带有函数成员的对象。我倾向于选择后者,因为 dojo.declare
精心设计的继承考虑因素将完全是矫枉过正,在这种情况下您不会使用它,而且它通常不会使当您只想将一些实用方法组合在一起时,实例化任何东西都是有意义的。
对于简单地将实用方法组合在一起的模块,我倾向于按照以下方式做一些事情:
dojo.provide('my.utils');
my.utils = {
doSomething: function(){
/* do something... */
},
doSomethingElse: function(){
/* do something else... */
}
};
正在加载,如果我没看错的话,那么是的,你的想法是对的。在您的网页中,您将 dojo.require(...)
您的页面所需的模块(也许只有一个,如果您还需要其中的所有其他依赖项)。然后,页面中需要加载这些模块的任何代码都应该位于传递给 dojo.ready 的函数内。这确保了即使在异步加载模块的情况下(即使用跨域加载器),您的代码仍然可以工作。 dojo.ready
特别等待 (1) DOM 准备就绪,以及 (2) 加载之前的所有 dojo.require
模块。
请注意,在模块本身内,您不需要将代码包含在 dojo.ready
中以等待 dojo.require
模块加载;这是由加载程序自动计算出来的。 (但是,如果模块中的某些逻辑需要等待 DOM 准备好,您仍然需要依赖 dojo.ready
。)
我过去写过更多关于dojo.ready
的文章;也许这会是一本有用的读物:http://kennethfranqueiro.com/2010/08/dojo-required-reading/
关于javascript - 道场风格发展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7492244/
我目前正在为 karaf 开发 bundle 并有一些问题... 我写了一个基于 cxf 的 bundle/webservice,我尝试在 karaf 中部署它,但它无法启动那个 bundle,因为它
我正在为我正在制作的快速网站使用高级 wordpress 主题。几乎所有内容都可以在管理面板中设置,这很棒,但标题大小不是其中之一,我现在发现它有点大。我想在管理面板中使用“自定义 css”部分,因为
我们正在考虑为基于 Scala 的 Akka Persistence 应用程序使用序列化方法。我们认为我们的持久化事件很可能会随着时间的推移而“演变”,因此我们希望支持模式演变,并首先考虑 Avro。
我正在开始一个新的 python 项目,主要针对可能在几年内升级到 RHEL6 的 RHEL5 机器。鉴于 python 2.4 是 RHEL5 上的标准,并且系统管理员不会支持他们必须支持的更多内容
我正在为我的 Chrome 扩展程序开发寻找一个简单的 Javascript 框架。我正在使用 jQuery 和 jQuery UI,但随着我的项目的增长,我对代码的定位变得更糟。因此,我需要某种一致
我是一名优秀的程序员,十分优秀!