使用PHP在HTML中回显css和js的内容

时间:2017-06-02 13:25:11

标签: javascript php css echo inline

要减少http请求,是否可以使用php内联css和js? 例如:

<style>
 <?php echo require_once("css/style.css"); ?>
</style>


<script>
 <?php echo require_once("js/myjs.js"); ?>
</script>

4 个答案:

答案 0 :(得分:3)

我将首先回答您问题的后半部分,然后应用上半部分。

&#34; 可以使用php内嵌css和js &#34; - 是的在某些情况下,将CSS和JS添加到文档内部的样式表中是一个好主意。

然而,你的方法可以做很多改进。快速执行此操作的方法是使用file_get_contents,如下所示:

echo '<style type="text/css">'.file_get_contents('/path-to-your/style.css').'</style>';

我建议抓取文件内容并直接将其添加到文档中的唯一情况是涉及为CMS系统(如Wordpress或Joomla等)编写插件的情况。

有时,您的插件可能只需要使用 5 - 10行CSS和/或JS ,强制您的用户添加另一个是不好的形式样式表给他们的http请求代码很少。在这些情况下,我建议加载内部样式表/脚本。

但是这样做并不是一个好主意&#34; 减少http请求&#34;正如你问的前半部分问的那样。如果您真的想减少http请求,那么您应该认真考虑合并样式表和脚本文件。拥有一些大文件比使用很多小文件更好。

答案 1 :(得分:3)

将JS或CSS等资源打印到文件中以加快加载速度对我来说绝对是不好的做法。现代浏览器最终会在用户点击您的第一页时缓存它们。

根据我的说法,您可以尝试缩小资源文件,以便更快地加载它们并根据需要改进缓存,但不需要它,因为所有现代浏览器现在都处理缓存非常好。

答案 2 :(得分:2)

对我来说这看起来真的很糟糕。另外,我不知道你将如何在这里获得任何性能提升,更像是相反。

你应该更专注于什么时候你真的需要加载你的js和css。缩小它也应该有所帮助。

答案 3 :(得分:0)

这是我要尽快加载CSS并同时利用浏览器缓存的方法:

我为首次访问者检查或设置了cookie;如果是初次访问者,则我加载CSS内联+预取实际链接(请注意,我使用预取,因为现代浏览器广泛支持它而不是预载)。这样,此访问者将在下次访问或下一页访问时从缓存中获取预提取的CSS。

if(isset($_COOKIE['v'])) $CSS='<link href="default.css" rel="stylesheet">';
else {
$CSS='<style>'.file_get_contents('default.css').'</style><link rel="prefetch" href="default.css">';setcookie('v','1',time()+31556926,'/','example.com',1,1);
}