在我的大多数网站中,我一直在使用以下代码来决定应该将哪个模板应用于内容呈现 - 基于编辑器选择的内容be_layout
:
page.10 = TEMPLATE
page.10 {
stdWrap.if {
value = 1
isInList.data = levelfield:-1,backend_layout_next_level,slide
isInList.override.data = TSFE:page|backend_layout
}
template = FILE
template.file = fileadmin/templates/main/tmpl/main.html
...
}
page.20 = TEMPLATE
page.20 {
stdWrap.if {
value = 2
isInList.data = levelfield:-1,backend_layout_next_level,slide
isInList.override.data = TSFE:page|backend_layout
}
template = FILE
template.file = fileadmin/templates/main/tmpl/special.html
...
}
这工作得很好。
但我曾预计该if
条件将确保根本不处理不必要的页面对象。直到我一直在通过管理面板查看一些性能问题:我发现两个(所有)子对象page.
似乎都被渲染了——即使if
条件不适用。
它看起来像是定期处理的,然后根本不显示!所以当使用多个模板时,页面渲染时间会爆炸。
我是否正确解释了这一点?执行此操作的正确、高效的方法是什么?或者它是一个错误?