2011-09-05 47 views
0

是否有任何设计模式或我可以用来创建独立组件的东西,它封装了一些功能,包括将脚本标记添加到最终的html输出中?如何将JavaScript封装在服务器端语言组件中?

例如,我有一定程度的成功建立一个组件是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

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

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

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

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