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

How to encapsulate javascript in a server-side language component?

本文关键字:封装 javascript 组件 语言 服务器端      更新时间:2023-09-26

是否有任何设计模式或我可以用来创建自包含的组件,封装一些功能,包括添加脚本标签到最终的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库不被添加超过一次的方式(假设我有2个组件:Modal_Window和Accordion,都需要jquery,我不希望它被添加两次)

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

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

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

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