不要将数据与逻辑混为一谈。也就是说,“某些函数依赖于 PHP 的输出”是一种代码味道。如果你有这样的代码:
setSomeContent("<? echo $myobj->title() ?>");
setMoreContent("<? echo $myobj->description() ?>");
然后是时候备份一下了。
首先,很容易分解你的 JS。只需像这样为每个文件制作一个脚本标签。
<script src="main.js"></script>
<script src="page.js"></script>
<script src="player.js"></script>
现在它们是按顺序加载的,所以我们可以确定main
是先加载的。
// main.js
var Site = {
// functions
};
// page.js
Site.Page = {
// functions
};
// player.js
Site.Player = {
// functions
};
现在对于来自 PHP 的数据,将其作为 JSON 导出到页面,存储在它自己的变量中:
var myObj = <? echo myObj->toJSON() ?>;
Site.Page.setContentForObject(myObj);
然后将其完全传递给您在 JS 文件中声明的任何函数。以这种方式,数据和逻辑的分离仍然相当干净。