在javascript中使用php代码是一个好习惯吗?

时间:2013-09-10 06:06:10

标签: javascript php performance

我听说很多专家说在javascript中输入php代码不是一个好习惯。我想知道这是不是真的。如果是,那么它会影响性能吗?还是有其他原因吗?

例如:

<?php
$num=1;
?>

<script>
var x = "<?php echo $num;?>";
</script>

6 个答案:

答案 0 :(得分:2)

不,这不是好习惯。

  

会影响表现吗?

我没有具体知道你写这行时你的意思,但我能想象的所有表演,我会说:当然,没有。

  

还有其他原因吗?

混合两种语言很难,因为它需要适当的编码。这使事情变得复杂。复杂性是不好的做法。

答案 1 :(得分:1)

  

通常,使用语言X生成语言Y中的代码是不好的做法。

     

尝试通过将数据作为唯一的接口来解耦这两种语言 - 不要混淆代码。

     

在您的示例中,您可以使用PHP填充可用于JavaScript的cfg结构来改进代码:

https://softwareengineering.stackexchange.com/questions/126671/is-it-considered-bad-practice-to-have-php-in-your-javascript

答案 2 :(得分:1)

不会影响性能,但会影响可管理性安全性

在您的情况下,您的javascript功能是否可以在不知道num的值的情况下运行?或者您只是从PHP开发JS脚本?后者是你应该避免使用的。

让我们举个例子,用num来了解购物车中的商品数量。现在这是一个非常重要的信息,但由于它的JS,它很容易被操纵。在这种情况下,您应该将这些敏感信息存储在服务器上而不是客户端上。

答案 3 :(得分:0)

几点:

  1. 你失去了缩小JS脚本的能力,因为它依赖于PHP输出
  2. 代码很快就难以维护。您需要在javascript代码中扫描PHP标记。
  3. 通常,我声明一个全局配置对象,并在页面加载时通过单独的ajax请求将其拉出(这可以是一个回显JSON的PHP脚本)。

    MyApp : {
       x: '123',
       y: 'xxx'
    }
    

    然后再从我的javascript文件中访问它:

    (function(){
       alert(MyApp.x)
    })();
    

答案 4 :(得分:0)

我不认为这是一种不好的做法,如果价值观是动态的,你可以这样做,

<强> test.php的

<script type="text/javascript">
    var foo = '<?php echo $foo;?>';
</script>
<script type="text/javascript" src="test.js"></script>

<强> test.js

$(function(){
    alert(foo);
});

如果它不是动态值,建议不需要使用php标签

答案 5 :(得分:0)

我认为不是那么糟糕。将动态PHP值分配给PHP模板中的JavaScript变量(如果可能,请作为第一行),然后在外部JavaScript文件中调用这些变量。我完全同意@hakre的答案。