【问题标题】:using PHP include to get local js kosher?使用 PHP 包括获取本地 js kosher?
【发布时间】:2018-02-06 09:17:37
【问题描述】:

我已经搜索了以下内容,似乎没有人问埃文,所以我认为这有一些愚蠢的事情: 在一个 php 文件中

... php code
    ?><script type="text/javascript> <?php include js/filename.js ?></script>
<?php
... php code

【问题讨论】:

  • 这样做毫无意义。如果你想用 PHP 创建 JavaScript,只需在你的 HTML 脚本标签 src 中使用 .php 文件扩展名,然后在 .php 页面上编写创建 PHP 的 JavaScript。
  • 实际上,正如下面 Brad 提到的,我试图避免再次往返以获取仅此页面使用的少量 JS 粘合函数。根据其他地方的建议,我可以将 JS 直接粘贴到页面中。我的假设在我的主机情况下似乎是正确的,在主机上读取文件的延迟远小于传输等待时间。感谢您的意见。

标签: javascript php include local


【解决方案1】:

看来您正在尝试将您的 JS 捆绑到您的 HTML 输出中。实际上有几个用例,但它们并不经常出现。例如,我有一个 Web 应用程序可以加载到没有缓存的游戏机上。作为微优化,我只是将所有脚本和 CSS 捆绑到 HTML 中,以减少 HTTP 请求的数量。

但总的来说,这也有不利之处。假设您想在多个页面上使用相同的 JavaScript。脚本可以在页面 A 上加载,缓存,然后立即可用于页面 B,现在您必须再次为页面 B 加载整个内容。此外,不要忘记代理服务器可以很好地缓存静态资源。如果您正在动态创建页面,那么这些页面可能不会被缓存,即使 JavaScript 可以。

现在,进入捆绑技术...您正在做的确实是面部护理。通过使用include(),您是在告诉 PHP 像执行 PHP 一样执行该文件的内容。那不是 PHP 文件(无论如何我都假设),那是 JavaScript。这不太可能,但如果 &lt;?php 最终出现在该文件中,您将最终执行您不打算在服务器端执行的代码。更糟糕的是,让 PHP 查找它的令牌会浪费 CPU。 readfile() 是您想要的,它将通过该文件的内容。

其他需要注意的还有逃逸之类的。您现在在 HTML 上下文中使用纯 JS 文件。需要谨慎。

最好使用现有的打包工具。目前我没有任何具体的建议...我在 PHP 中没有找到我特别喜欢的。

【讨论】:

  • 错过了编辑窗口:感谢您的输入,尤其是读取文件。确实,我在第一次将包含的(本地开发的)js 文件(以及 bloci=king 其他东西)获取到浏览器时遇到了一些延迟。从那以后,我已将其他大部分内容移至 CDN。在“查看源代码”中暴露我的内部例程也有不利之处 关于(可能不太可能,尤其是对于我编写的文件)js文件中有
猜你喜欢
  • 1970-01-01
  • 2011-11-02
  • 2011-11-20
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 2020-06-21
  • 2013-04-12
  • 1970-01-01
相关资源
最近更新 更多