gpt4 book ai didi

javascript - 道场风格发展

转载 作者:行者123 更新时间:2023-12-02 20:05:24 24 4
gpt4 key购买 nike

我很难理解 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com