库设计 - 消除dom依赖

时间:2013-03-23 21:00:58

标签: php javascript

<div id='universals' data-path='/a/' data-load='1'></div>

这是一个奇怪的案例。我有前端代码(JavaScript),它知道资源的位置是基于我通过PHP传递给它的路径,它写了上面的HTML。

这是一个很酷的功能,它允许我简单地重命名服务器上我的文件夹的根目录,一切都继续工作,因为PHP确定当前工作目录并通过上面的代码将其发送到客户端。

这是一种反思形式。

但是我想将它构建到前端的应用程序框架中。

现在我的javascript库,我们称之为foo.js依赖于dom元素。我很确定这不是一个好习惯。

我的计划是将id设置为这样。

foo.setUniverisal('#universal');

然后在文档中输入需要哪些属性。

消除任何dom依赖的任何其他想法或更好的方法?

1 个答案:

答案 0 :(得分:1)

我认为最好的方法是最简单的方法:

foo.setDataPath("pathToData")

然后,您的客户端“粘合”代码(将您的库,HTML和PHP放在一起的代码)将从您的标记中获取路径并调用foo.setDataPath。这将是最正交的设计(What is "Orthogonality"?)。

可能相关的情况示例:如果从HTML中初始化此库,如果无法生成此标记,该怎么办?例如,因为HTML将以静态方式(或通过CDN)提供。