2014-05-02 21 views
0

我相信我在做什么叫'模块化'(??)。 只是学习Javascript。Javascript模块化编程内存/性能用法:好还是坏 - 意见?

我目前将每个模块保存在一个单独的.js文件中。 这使得易于维护和故障排除。

每个文件都被格式化为一个变量。 这是许多JavaScript文件中的每一个的包装的示例:

var FreeHand = function(pixy){ };

假设上述(FreeHand.js)该文件(连同许多其他的)被称为像这样:

 var theBakery = coolCakeBakeryWithOnlineCakeDesign = 'the Pixy Cakes Bakery in Avondale, Arizona'; 

     var pixy = new Pixy(theBakery); 
     var coffee = new Coffee(pixy); 
     var decorator = new Decorator (pixy); 
     var freeHand = new FreeHand(pixy); 
     var info = new InfoPanel (pixy); 
     var oven = new Oven(pixy); 
     var pixyDust = new MagicPixyColors(pixy); 
     var tips = new HandyTips(pixy); 
     var signals = pixy.signals; 

    </script> 

signals.js用于各个模块之间的通信,在几需要的情况下。

我的问题是,这是一个'最佳内存设计'的好格式,或者 - 基本上我认为我是一个新手,这是一个很好的格式。意见?帮帮我?

PS:如果你想看到一个活生生的例子(在这里我复制了这种格式)(这是我的第一个JS项目),看看它的工作,检查了:http://threejs.org/editor/

回答

0

其实你正在做的非常基本的OOP通过使用new关键字创建一些构造函数的对象实例,我认为你指的是modular pattern,但在这种情况下,它是设计模式的广泛概念之一,你不这样做。这是模块化的模式的基本结构:

(function() { 
    // All vars and functions are in this scope only 
    // still maintains access to all globals 
}()); 

您可以阅读这些:1.JavaScript Module Pattern: In-Depth2.Learning JavaScript Design Patterns

+0

性能受到多大影响。有没有一种方法来测试。 – JSdc

+1

感谢您的阅读材料! – JSdc

0

这是伟大的组织在发展你的代码,但是对于生产你的网站将具有执行这么多独立的GET请求创出性能:

<script src="../examples/js/controls/EditorControls.js"></script> 
<script src="../examples/js/controls/TransformControls.js"></script> 
<script src="../examples/js/loaders/BabylonLoader.js"></script> 
<script src="../examples/js/loaders/ColladaLoader.js"></script> 
<script src="../examples/js/loaders/OBJLoader.js"></script> 
<script src="../examples/js/loaders/PLYLoader.js"></script> 
<script src="../examples/js/loaders/STLLoader.js"></script> 
<script src="../examples/js/loaders/UTF8Loader.js"></script> 
etc. 

一种解决方法是Browserify,它允许你要模块化你的JavaScript,但将它们全部编译成一个.js文件进行生产。然后在浏览器中,您只需加载一个脚本而不是几十个脚本。

工作流程方面,您可能需要查看GruntGulp。这些任务跑步者可以观察你的.js文件进行更改,并自动执行构建步骤。因此,例如,每次对文件进行更改时,browserify任务都会自动运行,您不必在命令行上触发它。

相关问题