您可以在使用缩小库缩小的.js文件中使用 PHP?



我在javascript文件中使用一些PHP。我也在使用迷你图书馆(https://code.google.com/p/minify/)缩小样式表和javascript。我将script.js的请求重写为script.php,在script.php中我这样做(代码是抽象的,所以没有任何意义):

<?php header("Content-Type: application/x-javascript");
$var = 'hi'; ?>
$(document).ready(function() {
alert('<?php echo $var ?>');
});

当我直接请求script.js时,它就起作用了。当我把它包括在字符串中,像这样缩小:

<script type="text/javascript" src="min/b=javascript&amp;f=script.js"></script>

它给了我400个糟糕的请求。我已经在minimy配置中设置了调试变量true。没有结果。这是不可能的吗?还是我做错了什么?我找不到关于这个话题的任何其他问题。

您应该将该变量与js代码分开发送,例如在配置json文件或html中的脚本标记中,等等。
之后,您的脚本将不依赖于php变量,因此它们将是静态的和可缩小的。

一些解释:

好的,首先。Php在服务器机器上运行,javascript在客户端浏览器上运行。这些是完全不同的机器和不同的平台。我希望你能理解
为了维护(开发、调试等)代码,我们必须对其进行组织。混合php和javascript代码使事情变得非常无序。如果你想调试php功能,你想读php代码,而不是js代码,反之亦然。它被称为噪声代码,在你的js代码中有php噪声,或者在你的php代码中有js噪声。为了通过html等简单语言避免这些问题,我们使用模板,通过javascript等复杂语言,我们应该创建一个应用程序接口,通过该接口,客户端js和服务器端php应用程序应该进行通信、发送数据等。这很好,因为它是可控的、有组织的……我们总是知道数据来自哪里,如果你想找到bug的来源或者了解当前代码是如何工作的,这一点非常重要。通过这种大小的代码,这是无关紧要的,但超过一百行你会感觉到不同。。。

你可以找到几个关于这方面的问题,我认为你应该读一读:https://softwareengineering.stackexchange.com/questions/126671/is-it-considered-bad-practice-to-have-php-in-your-javascript

从技术上讲,如果使用Minify_Source对象而不是静态文件路径,则是可能的。例如,您可以使用PHP脚本的输出作为缩小的输入源。

文档中有一节介绍了它的局限性。

如果脚本的输出按用户或频繁更改,您可能不想这样做。

最新更新