2011-11-03 51 views
0

所以,最近,累积了不少的js和css文件后,我开始思考所有的HTTP调用,我做的。包括和条件VS传统多个文件要求

由于我使用PHP inlcude的页眉和页脚,每一页都在呼唤每一个脚本这是非常低效的。所以我开始在php页面中使用条件语句来调用所需的文件。

然后我想,嘿,通过制作一个巨大的css.php来减少所有这些HTTP调用(即使现在每个页面都有几个外部js或css文件)也不会更聪明,并且一个巨大的js.php,并且分别将它们包含在页眉和页脚中,并在这些文件中使用条件语句?

最终的结果是,那些大文件将被处理服务器端,并且每个页面将直接在头部和jss直接在身体的底部获得它的CSS,它所需的所有代码,没有更多比起那个来说。

是否有任何理由不这样做?有关这个想法的一般想法?其他人是否已经这样做了,我错过了船?

+1

没有错,有PHP输出大JS或CSS文件,只是要确保你有适当的缓存头设置 - 一些PHP安装使PHP输出不可缓存的(因为它是动态的),所以你可能最终使事情更糟糕的是拥有一个巨大的不可缓存的css而不是一些可能会更小的css。 –

+0

啊..伟大的观点马克 - 这正是我期待的那种见解。请问我应该如何处理我的缓存头以纠正这个可能的问题? – sdo

+0

http://stackoverflow.com/questions/1971721/how-to-use-http-cache-headers-with-php –

回答

0

我本来希望这个奖项回答马克,但他没有正式回答和所有的人是大错特错。也许我没有清楚地问这个问题。

无论如何,答案是这不应该完成,就好像每个页面只有它所需要的css和js是有效的,并且避免了无关的HTTP请求,所生成的文件始终是唯一的每个页面,因此,实际上不能缓存。

感谢大家的意见!

1

如果你真的很担心所有的HTTP调用的,考虑采取在PHP和AJAX(jQuery的)详细看看。如果做得对,它可以非常快 - 也很酷。另外,记住你的浏览器在大多数情况下会缓存你的css/js。

0

您可以添加以下代码js.php(在第一行代码)

<? 
    Header("content-type: application/x-javascript"); 

和这css.php

<? 
    header("Content-type: text/css"); 
0

好,做HTTP调用的身边,您的浏览器,使他们有条件。并且只从服务器获得一个HEADER响应,而不是在浏览器中已经快速兑换的acctual文件。

如果你仍然认为这些HTTP调用是为您的服务器过重 - 不要忘记实现在伪造的JS文件相同的行为。