【问题标题】:Is Javascript code generated by PHP bad practise? [closed]由 PHP 生成的 Javascript 代码是不好的做法吗? [关闭]
【发布时间】:2012-12-28 22:21:11
【问题描述】:

我想知道这个问题,因为我正在考虑要么在单独的 js 文件中创建 JavaScript 代码,要么通过 PHP 生成它,有人可以告诉我如果它是通过 PHP 生成的是否是不好的做法吗?

【问题讨论】:

  • 如果您需要动态生成 JavaScript,那么为什么不这样做呢?如果您注意安全问题,那应该不是问题。
  • 有什么好处?如果您在 PHP 中生成它,似乎会更难维护。
  • 至少 99% 的时间您实际上不需要这样做,并且可以使用通过“静态”javascript 的“正常”解决方案。
  • 您能否修改问题以给出具体示例说明何时需要这样做?

标签: php javascript code-generation


【解决方案1】:

这和生成 HTML 一样糟糕,所以不 - 这样做很好。 但是,如果您的 JavaScript 永远不会更改,那么最好为其创建一个单独的文件。

【讨论】:

  • 类似,但我认为在数量上不一样:1)HTML比JS简单得多; 2)HTML,尤其是你要生成的动态部分,有点像数据,而不仅仅是代码(生成数据是可以的); 3) 即使对于 HTML,对于更复杂的文档,也需要像模板这样的结构化方法,只生成有限的部分。
【解决方案2】:

虽然这不一定是不好的做法,但您应该不惜一切代价避免它,主要是为了长期代码可维护性。如果您不需要动态生成 JavaScript,那么您不应该这样做。

即便如此,当它确实需要动态生成时,大多数时候您只是生成动态变量。

编写一个静态 javascript 文件,然后动态生成一个带有变量的脚本标签是一个明智的决定。

例子:

<script type="text/javascript">
   var message = "<?= $my_message ?>";
</script>

<script type="text/javascript" src="static-message.js" />

static-message.js 包含的地方:

  alert("Your message: " + message);

这是因为在加载 static-message.js 文件之前设置了消息变量。

【讨论】:

    【解决方案3】:

    如果我能帮上忙,我不会。除非没有其他办法处理。可维护性和可测试性浮现在脑海中。这是一个与语言无关的问题。你可能会在纯解释语言中侥幸逃脱,但如果你在编译/半编译语言中做类似的事情,你可能会很痛苦。我会投票赞成尽量减少 to 的混合。如果您必须公开一个数据元素供 JS 处理,那么只需将 JS 的其余部分保存在一个单独的文件中。

    【讨论】:

      【解决方案4】:

      我经常使用 PHP 动态生成 CSS 文件。这允许您创建一个可以在多个项目之间共享的 CSS 样式表,但也可以包含与某个项目特别相关的自定义样式。

      同样可以应用于其他资源。包括JavaScript、图片、PDF文档等等……等等……

      使用 PHP 成功执行此操作的关键是应用正确的标头信息。包括浏览器应该如何缓存响应。您可能还希望将脚本的输出缓存到临时文件。以便更快地加载未来对相同信息的请求。

      【讨论】:

        【解决方案5】:

        能够这样做非常方便,但我不建议纯粹从代码维护和代码清晰的角度来看这样做。此外,有些编辑器对也有服务器内容的 JS 代码没有很好的智能感知。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-01-22
          • 1970-01-01
          • 2011-03-15
          • 2010-09-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多