2017-08-29 89 views
1

我已搜查以下,似乎没有人埃文询问,所以我想有一些捂脸哑一下: 在PHP文件包含获取本地js的Kosher?

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

这样做没有意义。如果您想使用PHP创建JavaScript,只需在HTML脚本标记src中使用'.php'文件扩展名,然后在'.php'页面上编写创建PHP的JavaScript。 – PHPglue

+0

实际上,正如Brad在下面提到的那样,我试图避免再往返一次,以获取由该页面单独使用的少量JS胶水功能。 根据其他地方的建议,我可以将JS直接粘贴到页面中。 我的假设,在我的主持人的情况下似乎是真实的,在主机上读取文件的延迟远小于运输等待时间。 感谢您的输入。 –

回答

0

看来你想要做的是什么捆绑你的JS到你的HTML输出中。实际上有几个用例,但它们并不经常出现。例如,我有一个Web应用程序可以加载没有缓存的游戏控制台。作为一个微型优化,我只是将所有脚本和CSS绑定到HTML中以减少HTTP请求的数量。

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

现在,在捆绑技术...你在做什么是facepalm的确。通过使用include(),你告诉PHP执行该文件的内容,就好像它是PHP一样。这不是一个PHP文件(我假设无论如何),那就是JavaScript。这是不太可能的,但如果<?php最终会在那个文件中出现,那么您将最终执行您不打算执行服务器端的代码。更糟糕的是,您正在通过让PHP查找其令牌来浪费CPU。 readfile()是你想要的,而不是通过该文件的内容。

其他要注意的事情是逃避等。您现在在HTML上下文中使用纯JS文件。需要小心。

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

+0

感谢您的输入,尤其是读取文件。 –

+0

错过了编辑窗口: 感谢您的输入,尤其是读取文件。 事实上,我第一次在浏览器中包含(本地生成的)js文件时(并且bloci = king其他内容)有一些延迟。此后,我将其他大部分内容都转移到了CDN。 在“查看源代码”中公开我内部例程的缺点 关于(可能不太可能,特别是对于我写的文件而言)可能性不大,因为js文件中有一个<?php。 –