1

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

4

5 回答 5

2

它与生成 HTML 的练习一样糟糕,所以不 - 这样做很好。但是,如果您的 JavaScript 永远不会更改,那么一个单独的文件将是理想的。

于 2013-01-14T21:41:56.183 回答
1

虽然这不一定是不好的做法,但您应该不惜一切代价避免它,主要是以长期代码可维护性的名义。如果您不需要动态生成 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 文件之前设置了消息变量。

于 2013-01-14T21:45:33.700 回答
1

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

于 2013-01-14T21:46:47.003 回答
0

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

这同样适用于其他资源。包括JavaScript、图片、PDF文档等等..等等..

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

于 2013-01-14T21:46:04.077 回答
0

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

于 2013-01-14T21:48:34.710 回答