如何在服务器端语言组件中封装javascript?

时间:2011-09-05 09:43:47

标签: javascript oop design-patterns encapsulation

是否有任何设计模式或其他东西可用于创建自包含组件,它封装了一些功能,包括将脚本标记添加到最终的html输出中?

例如,我构建的一个成功的组件是Modal_Window包,我可以这样使用:

$mw = new Modal_Window($template); // $template is the object in charge of rendering the html template
$mw->setContent('Click here')->setBoxContent('<img src... />');
echo $mw;

在内部,Modal_Window将负责告诉模板对象添加必要的js库。

嗯,这是一个想法。我想知道的是,如果这是解决这个问题的方法,或者是否有更标准的方法(或者我根本不打算封装)。这有一个已知的模式吗?是否有可能以更加分离的方式创建这种组件,以便我可以共享它?因为它完全依赖于模板对象,以及它检查js库没有多次添加的方式(假设我有两个组件:Modal_Window和Accordion,两者都需要jquery,我不希望它是加了两次)

1 个答案:

答案 0 :(得分:1)

我建议您有一个中央模块管理器(通常称为您的应用程序或您的框架)。

然后,模块向模块管理器注册,并告诉模块管理器它具有资产x,y和z,在使用该模块时必须适当地包含它们。

有关如何处理,存储,呈现或一般处理这些资产的更多信息是特定于框架/应用程序的。

但是对于包含JavaScript,我会说模块只是简单地向模块管理器声明了JavaScript依赖性。然后,模块管理器可能会确保满足依赖关系,并且只包含一次依赖关系。