代码之家  ›  专栏  ›  技术社区  ›  Sandeepan Nath

将动态参数传递给JS代码——哪一个是更好的实践?

  •  0
  • Sandeepan Nath  · 技术社区  · 14 年前

    对于向JS代码传递动态值,这样做更好吗?

    var myVar = '<?php echo addslashes($_SESSION['myVar']); ?>';
    

    或者在运行时进行Ajax调用以获取会话变量并将其分配给myvar?

    利弊是什么?

    我个人更喜欢Ajax方法。它使代码在复杂数组分配等情况下看起来更好。

    希望得到专家的意见。

    更新

    我知道使用Ajax方法,每个HTTP请求都很重要。但是如果我们在javascript文件中有定义良好的函数,我们只需要有可用的函数参数。只要我们想调用函数调用,就可以在函数调用中传递参数,例如:

    <a onclick="some_function('<?php echo $_SESSION['var'] ?>')">
    

    这就是我通常做的事情,在我的项目中,我很少需要在JavaScript文件中以内联方式传递它们。我有Ajax调用来进行服务器端处理(当然,当需要时)。

    我在这里的基本思想是将独立的JS文件集成到内联JS脚本中。我在看 this question . 我绝对不会调用Ajax来获取每一个变量(从我的问题上看可能是这样),因为这样的情况不会出现。

    谢谢。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Pekka    14 年前

    Ajax调用是另一个请求,结果将不会立即可用-可以直接以内联方式写入动态数据。在这种情况下,我倾向于选择内联方法。

    PHP的 json_encode() 可能会使编写大型数组变得相对容易,而不会使代码太混乱。

        2
  •  1
  •   Little Bobby Tables    14 年前

    首先,请注意,实际上并不是动态地生成JavaScript代码;而是使用PHP将参数的值传递给浏览器。

    如果这是PHP在代码中唯一(或主要)的功能,那么最好使用Ajax,而不是使用PHP生成页面本身(即使用.html文件而不是.php)。原因:工作速度更快,因为大多数内容都是静态存储的。

    如果您使用PHP来生成大部分页面,那么就不需要添加其他请求,正如pekka提到的那样。只是把它串联起来。