【发布时间】:2016-09-10 02:18:02
【问题描述】:
如何缓存刀片文件?
示例代码:
@foreach ($files as $file)
@include('partials.file')
@endforeach
如果有 100 个文件,那么刀片将加载 100 次。有没有办法缓存它或什么?如果部分刀片文件中有查询,可能需要很长时间。
最好的方法是什么?谢谢!
【问题讨论】:
如何缓存刀片文件?
示例代码:
@foreach ($files as $file)
@include('partials.file')
@endforeach
如果有 100 个文件,那么刀片将加载 100 次。有没有办法缓存它或什么?如果部分刀片文件中有查询,可能需要很长时间。
最好的方法是什么?谢谢!
【问题讨论】:
我相信你不必担心刀片模板的缓存,laravel 将刀片模板编译成原始 php 并为其创建一个缓存版本,但这些东西是内部的,担心它没有意义。
您当然可以找到很多方法,例如我们构建 View()->render() 字符串并将其输出到视图中,看看以下问题
【讨论】:
Blade 编译器缓存每个视图的单个实例。因此,如果您使用 Blade 模板,那么您只需“包含”视图一次。
确实,使用 PHP 编译器将导致每个 @include 包含一个包含。但是,这确实不太可能对性能造成重大影响。如果您可以提供任何相反的参考,那将是很好的。
最终,如果您真的担心在模板中包含文件,请将循环内容内联并删除抽象。这样,您的循环包含零包含并且您的问题得到解决。
【讨论】: