使用太多PHP包含一个坏主意?

时间:2010-08-28 01:43:50

标签: php include server-side-includes

我的问题是,使用多个PHP include()是否是一个坏主意。我问的唯一原因是因为我总是听到网站上有太多的样式表或脚本会产生更多的HTTP请求并减慢页面加载速度。我对PHP的想法也一样。

6 个答案:

答案 0 :(得分:28)

详细答案:

网页中引用的每个CSS或JS文件实际上都是由浏览器通过网络提取的,这通常涉及100毫秒或更长的网络延迟。对同一服务器的请求(按照惯例,虽然没有强制要求)一次一个或两个地序列化,因此这些延迟堆积起来。

另一方面,PHP包含文件都在服务器本身上进行处理。而不是100毫秒,本地磁盘访问将是10毫秒或更少,如果缓存,将是直接内存访问,这甚至更快。

如果您使用http://eaccelerator.net/http://php.net/manual/en/book.apc.php之类的内容,那么您的PHP代码将在服务器上进行一次预编译,如果您包含文件或将其全部转储,则无关紧要一个地方。

答案简短:

不要担心。对于这个问题,100次中有99次,更好的代码组织的好处超过了性能提升。

答案 1 :(得分:5)

包含的使用有助于代码组织,并且本身不是障碍。如果你正在加载一些你不需要的东西,那会减慢速度 - 但这是另一个问题。澄清:当您包含页面时,请注意您添加到负载中的内容;不要随意包含不需要的资源。

答案 2 :(得分:1)

如前所述,使用多个PHP包含有助于保持代码的有序性,因此这不是一个坏主意。当使用太多包含时,它将成为一个问题,因为Web服务器必须为您拥有的每个包含执行I / O操作。

如果你有一个大的Web应用程序,你可以使用PHP accelerator来增强它,它将来自PHP字节码编译器的数据和编译代码缓存在共享内存中。如果您在特定文件中包含大量PHP,则只执行一次。对该文件的进一步调用将命中缓存,因此不会执行任何PHP要求。

答案 3 :(得分:0)

这实际上取决于你想要做什么,我的意思是如果你有一段代码一直使用它真的很方便包含它而不是一直复制和粘贴,这将使你的代码更多明确而不慢,但是如果你包含你在文件中编写的所有函数或类而不使用它们当然这不是一个好的做法......我建议使用一个框架(比如codeigniter或其他你觉得方便的东西),因为这真的有助于清理这些事情......祝你好运!

答案 4 :(得分:0)

  

我问的唯一原因是因为   我总是听到太多了   网站上的样式表或脚本   创建更多HTTP请求并减慢速度   页面加载。我想知道同样的事情   关于PHP。

请注意,HTTP请求比PHP包含的要慢几个数量级。

多个HTTP请求 - >客户必须通过电汇请求并接受多个文件
几个PHP包括 - >客户必须只请求并接受一个文件

显然,包含服务器会受到服务器惩罚。但是根据你的问题......不要出汗。只有真正大规模的PHP项目才会遇到这样的问题。

答案 5 :(得分:-1)

PHP可以检测包含文件,因为您可以使用include_once()函数而不是include()。