【问题标题】:Dynamic Javascript Included with PHPPHP 中包含的动态 Javascript
【发布时间】:2011-04-27 14:06:42
【问题描述】:

我正在构建一个应用程序(字面意思是一个在线应用程序),我想仅在需要时动态调用 Js 文件/函数。此外,这是踢球者,能够将带有返回值的 php 变量和函数传递到 Js 代码中实际上对我有益。这样,传递的变量将发生在服务器端,我将受益于只有当时需要的客户端代码。

为此,我正在考虑创建多个简单包含以下内容的 PHP 文件:

<?
//JS CODE FOR PAGE 1 (ETC.)
//HEADER FUNCTIONS
?>
<script type="text/javascript">

//FUNCTIONS, METHODS, ETC WITH THE ABILITY TO INSERT PHP VARIABLES LIKE SO:
var name = <?= $name ?>

</script>

有人反对吗?为什么这不是管理 Js 代码、通过包含和传递数据动态调用它的有效方法?我没有想到什么?

【问题讨论】:

  • 如果name 是一个字符串,你应该这样做:var name = '&lt;?= $name ?&gt;'
  • 好电话,如果我最终走这条路,我一定会这样做。

标签: php javascript dynamic-programming server-side-includes


【解决方案1】:

在我的应用程序中,如果需要,我也只加载 js 文件。我不知道你是否这样做,但我使用的是 MVC 结构。因此,在预调度时,我正在检查是否存在与我的控制器同名的 js 文件。这样,如果控制器/动作真的需要它们,它们只会被加载。但是这样我只包括静态 js 文件,没有动态的 PHP 变量。我想,到目前为止我还不需要那个;)

但是使您的 js 文件与控制器或控制器中的操作或两者相关是仅加载我真正需要的 js 文件的非常好的方法。

【讨论】:

  • faileN - 这是个好主意!是的,我使用的是 MVC 结构。无论这个问题的结果如何,我都可能会开始使用这种组织方式,但是一旦将数据包含在内,您如何看待将数据传递到 Js 文件中?其他建议的 XML 或 Json 对象,但为什么不按照我建议的方式打包它们呢?使用您的想法,我什至可以创建一种将加载到控制器中的“库”。想法?
  • 我想我更想看看我的方法会有什么缺点
  • 我认为你的想法,将数据填充到已经包含的 js 文件中也是一个很酷的想法,如果它符合你的需要的话。正如我所提到的,直到现在我才需要这些东西。我只是想到了做var foo = &lt;?= $bar ?&gt;;之类的事情的缺点。我不知道这是否是一个问题,但据我所知,Javascript 将被缓存。这意味着如果您多次调用 myjsscript.php(= 发送 js-Headers 的 PHP 文件,因此浏览器认为这是一个 js 文件)并且只更改您在 js 中使用的 php-var,浏览器可能不明白,并导致错误的输出。然而放...
  • ...通过 json 或 xml 将数据导入 js,我猜会起作用。让我知道您在开发应用程序时使用了哪种方法;)
  • 原来缓存问题实际上根本不是什么大问题(哇),但这正是我所寻找的,只要有任何可能使这成为一个“坏”的想法。谢谢失败N
【解决方案2】:

也许你可以使用 PHP 的 json_encode 函数让你的 PHP 对象在 JavaScript 中可用,例如 <script type="text/javascript"> var name = <?= json_encode($name) ?>; </script>

【讨论】:

  • Xml-data 也是可能的,不仅仅是 json。
  • 那么,您是否建议我创建一个可以传递到通常引用的 Js 文件中的全局变量?这样做似乎需要我像现在一样链接我的 Js 文件,然后传入这个对象并解析它以获得正确的值。这是你的意思吗?似乎可行,但你为什么要推荐你的方法呢?哪个效率更高?
猜你喜欢
  • 1970-01-01
  • 2013-09-04
  • 2011-04-26
  • 2023-03-24
  • 1970-01-01
  • 2011-08-22
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
相关资源
最近更新 更多