包含和条件与传统的多文件请求


include and conditionals vs traditional multiple file requests

所以,最近,在积累了相当多的js和css文件之后,我开始思考我正在进行的所有http调用。

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

然后我想,嘿,难道不是更聪明的削减所有这些http调用(即使现在每个页面都有超过几个外部js或css文件)通过制作一个巨大的css.php,和一个巨大的js.php,只是包括在页眉和页脚分别,并在这些文件中使用条件语句?

最终的结果将是那些大文件将被服务器端处理,并且每个页面将在头部直接获得其css,在正文底部直接获得jss,以及所需的所有代码,而不是更多。

有什么理由不这样做吗?对这个想法有什么想法吗?是不是大家都这么做了,而我错过了机会?

如果您真的担心所有http调用,请考虑详细了解PHP和AJAX (jQuery)。如果操作得当,它可以惊人地快,而且很酷。另外,请记住浏览器在大多数情况下会缓存css/js。

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

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

和这个到css。php

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

好吧,除了做HTTP调用,你的浏览器使他们有条件。并且从服务器得到的响应只有一个HEADER,而不是实际的文件,它已经在浏览器中被愉快地兑现了。

如果你仍然认为这些HTTP调用对你的服务器来说太重了——别忘了在你伪造的JS文件中实现同样的行为

我本想把这个答案授予Marc,但他没有正式回答,其他人都错了。也许我问得不够清楚。

在任何情况下,答案都是不应该这样做,因为虽然每个页面只获得所需的css和js并且避免了不必要的HTTP请求是有效的,但是结果文件对于每个页面总是唯一的,因此实际上是不可缓存的。

谢谢大家的意见!