15

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

4

6 回答 6

29

详细答案:

网页中引用的每个 CSS 或 JS 文件实际上都是由浏览器通过网络获取的,这通常涉及 100 毫秒或更多的网络延迟。对同一服务器的请求(按照惯例,尽管不是强制性的)一次序列化一两个,因此这些延迟会叠加。

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

如果您使用http://eaccelerator.net/http://php.net/manual/en/book.apc.php之类的东西,那么您的 PHP 代码将全部在服务器上预编译一次,甚至不会无论您是包含文件还是将它们全部转储到一个地方。

简短的回答:

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

于 2010-08-28T02:12:53.780 回答
5

The use of includes helps with code organization, and is no hindrance in itself. If you're loading up a bunch of things you don't need, that will slow things down -- but that's another problem. Clarification: As you include pages, be aware what you're adding to the load; don't carelessly include unneeded resources.

于 2010-08-28T01:53:05.407 回答
1

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

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

于 2010-08-28T02:55:31.010 回答
0

我问的唯一原因是因为我总是听说网站上有太多样式表或脚本会创建更多 HTTP 请求并减慢页面加载速度。我对 PHP 也有同样的疑惑。

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

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

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

于 2010-08-28T02:26:54.467 回答
0

It really depends on what you want to do, I mean if you have a piece of code that is used all the time it is really convenient to include it instead of copying and pasting all the time and that will make your code more clear and not slower, but if you include all the functions or classes you have written in your files without using them of course thats not a good practice...I would suggest using a framework (like codeigniter or something else you find convinient) because it really helps clearing this things out... good luck!

于 2010-08-28T02:00:30.670 回答
-1

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

于 2010-08-28T04:18:02.207 回答