使用PHP时需要包含的数量是多少?

3
我正在使用许多include来展示网站的小部分。使用许多include是否可以,还是应该尽可能减少它们?include函数需要多长时间?
我的主页加载非常慢。如何使其加载更快。(我的主页每天在一个小时内显示几乎相同的内容(只有在某些部分显示一些不同的数据)。我能缓存它吗? 最好的缓存解决方案是什么,或者有其他方法可以使事情变得更快。)

包含的数量不是问题。问题可能出在你的源代码上,你的查询可能很慢,将它们打印到屏幕上并复制到 PMA 中检查它们的工作方式。 - kskaradzinski
1
你可以使用xdebug来查找导致代码运行缓慢的原因。 - Ibu
3个回答

1
如果内容每小时更新一次,为什么不创建一个静态HTML(可以通过PHP轻松完成)来定时生成,这样只需读取和加载该静态HTML,而不是在Web请求时生成。

编辑:

您可以创建一个 PHP 脚本,生成一个类似于 index.html 的文件,并填充它的 HTML 代码。然后每小时执行该 PHP 脚本。这可以通过使用 CRON 作业来实现。如果您想获取更多关于这两个主题的信息,请提出另一个指定主题的问题。


如果在某些部分显示了不同的数据,但总体上,每小时都会收集和更新所有数据,则建议您每小时生成一个静态页面。根据我的经验,这可以节省很多开销。 - Gary Tsui
我认为他有两种类型的内容 - 一种是每小时变化的,另一种是完全动态的(而不是第二种类型完全静态的)。 - binaryLV
感谢所有的回复。在我的主页上,有几个部分每天都会进行一些小改动,这些改动只会在 cron 作业运行一次后才会发生。有些部分会在每次加载时显示随机数据。我想为那些只在一天内更改一次的部分实现缓存。就像 Gary Tsui 提到的那样:最终文件将包含 .php 和 .html 部分,我该如何做到这一点? - kb0000
@Gary Tsui 谢谢。我现在会尝试一下。 - kb0000
如果您需要知道哪个部分需要编写,您可以始终为您的eregi_replace或ieregi_replace创建自定义文本/标记以使其正常工作。 (例如:eregi_replace(“## HTML部分##”,$HTML_CONTENT))。希望这有所帮助。 - Gary Tsui
显示剩余7条评论

1

1

如果信息只持续一个小时并且会被更改,那么在该信息部分使用缓存是没有意义的,因为下一次访问时,人们将获得另一组信息,而缓存的信息就会浪费。

此外,我认为在当前页面中包含文件和包含文件内容之间没有太大区别,因为它们都将以类似的方式执行。使用include()只是使您的代码看起来更清洁、更易于控制和维护。

现在转向为什么您的主页加载速度太慢的问题,我认为这不是您的include()的问题,而可能是您处理数据的方式有问题。正如某些评论中所提到的,使用Xdebug查找导致主页变慢的原因。

祝你好运。


如果信息会持续一个小时,考虑到服务器端缓存的原因。如果涉及到包含文件,包含文件会解析它(并可能执行一些繁重的操作,如执行数据库查询),而输出文件内容只会读取文件内容并输出 - 这是一个巨大的区别。 - binaryLV
@binaryLV:你为什么认为这些信息只出现一个小时就应该被缓存呢?据我所知,include()语句会包含和评估指定的文件,除非有任何方法的调用,否则不执行任何操作。你应该看一下这个页面https://dev59.com/7nE95IYBdhLWcg3wd9tK - user743234

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接