Too many get_template_parts?

时间:2013-08-20 作者:UzumakiDev

对于我使用的很多网站get_template_part 主要是因为我首先用html/css对大部分内容进行了编码,而且似乎更容易根据自己的需要调用每个部分。

我的问题是,基本上,这会对性能产生显著影响吗?如果我打电话来说,3或4个模板部分。如果我只带来一些小片段,你会说多少太多了。

感谢您的帮助。

2 个回复
最合适的回答,由SO网友:epilektric 整理而成

在我看来,三到四次get_template_part() 是完全可以接受的,甚至在一些更大、更复杂的主题的规范范围内。

我不知道有多少是太多了,但我认为这必须是一个相当大的数字才能注意到性能上的成功。

更深入的观察

get_template_part() 呼叫locate_template().

locate_template() 使用foreach() 要运行的循环file_exists() 针对主题目录。

文件性能\\u exists()

根据this post about the performance of file_exists(), PHP自动缓存函数的结果以提高性能。总的来说,这被认为是相当快的。

foreach()的性能

This post about the performance of foreach() vs for() 得出的结论是,一般来说,两者之间没有什么明显的区别。然而,它并没有直接解决foreach() 就其本身而言。为此,这篇文章how foreach() really works 深入了解该功能。它声明如下。

1.foreach() 可能会很慢,因为它必须复制数组,但在大多数情况下通常不会。

2.foreach() 其行为通常是透明的。

3.foreach() 如果在循环中修改数组,则可能会出现异常行为。

总之,调用get_template_part() 应该比较快。内的循环locate_template() 必须使用和foreach() 似乎和其他任何工具一样,都是完成这项工作的好工具。file_exists() 然后将缓存其结果。我们对性能的唯一直接控制get_template_part() 是模板目录中的文件数。

除非您有数百个模板文件要查看,或者正在对get_template_part() 站点性能的变化应该可以忽略不计。

SO网友:vancoder

3或4get_template_parts 呼叫不会对性能产生任何明显的影响。在察觉到任何问题之前,您可能需要进入数百个(如果是这样的话)。

结束

相关推荐