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

使用太多的PHP包含了一个坏主意?,php,include,server-side-includes,Php,Include,Server Side Includes,我的问题是,使用多个PHP includes()是否是个坏主意。我问这个问题的唯一原因是,我总是听说一个站点上有太多的样式表或脚本会产生更多的HTTP请求,并减慢页面加载速度。我对PHP也有同样的疑惑。使用includes有助于代码组织,而且本身没有任何障碍。如果你正在加载一堆你不需要的东西,这会减慢速度——但这是另一个问题。澄清:在包含页面时,请注意要添加到负载中的内容;不要粗心地包含不需要的资源 这真的取决于你想做什么,我的意思是如果你有一段代码一直在使用,那么包含它而不是一直复制和粘贴非常

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

使用includes有助于代码组织,而且本身没有任何障碍。如果你正在加载一堆你不需要的东西,这会减慢速度——但这是另一个问题。澄清:在包含页面时,请注意要添加到负载中的内容;不要粗心地包含不需要的资源

这真的取决于你想做什么,我的意思是如果你有一段代码一直在使用,那么包含它而不是一直复制和粘贴非常方便,这将使你的代码更清晰,而不是更慢,但是,如果您在文件中包含了所有编写的函数或类,而没有使用它们,这当然不是一个好的做法…我建议使用一个框架(如codeigniter或其他您觉得方便的东西),因为它确实有助于清除这些问题。。。祝你好运

详细答案:

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

另一方面,PHP包含文件都是在服务器本身上处理的。本地磁盘访问将不超过100毫秒,而是10毫秒或更短,如果缓存,将是直接内存访问,速度更快

如果您使用或之类的东西,那么您的PHP代码都将在服务器上预编译一次,甚至包括文件还是将它们全部转储到一个位置都无关紧要

简短的回答:

别担心。在这个问题上,100次中有99次,更好的代码组织带来的好处超过了性能的提高

我问的唯一原因是 我总是听说吃得太多了 站点上的样式表或脚本 创建更多HTTP请求并降低速度 页面加载。我也在想同样的问题 关于PHP

请注意,HTTP请求比PHP请求慢几个数量级。

多个HTTP请求->客户端必须通过网络请求和接受多个文件
多个PHP包含->客户端只能请求和接受一个文件


显然,include将受到服务器惩罚。但是根据你的问题。。。别担心。只有在真正大规模的PHP项目上,您才会遇到这样的问题。

正如前面所说的,使用多个PHP Include有助于保持代码的条理化,因此这不是一个坏主意。如果使用了太多的include,这将成为一个问题,因为web服务器将必须为您拥有的每个include执行I/O操作


如果您有一个大型web应用程序,您可以使用一个将PHP字节码编译器中的数据和编译后的代码缓存在共享内存中的。如果在一个特定的文件中有很多PHP包含,它们将只执行一次。对该文件的进一步调用将命中缓存,因此不会执行PHP require。

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

我认为CSS等页面与PHP页面之间肯定存在一些整体差异。非常感谢。关于你的答案,最好的部分是解释JS和CSS是如何工作的。我希望更多的人能深入地回答问题。谢谢顺便说一句,我偶然发现了这个项目,这是一个像上面的工具一样预编译代码的工具吗?当使用操作码缓存时,包含的更多(=更小的文件),比一个大文件中的所有内容都要快一点。但是你不应该担心这个。而是关注代码的可读性。