多次调用Smarties Display()方法与使用Include [英] Calling Smarties display() method multiple times vs using includes
本文介绍了多次调用Smarties Display()方法与使用Include的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
将站点的模板化部分组合在一起的最佳方法是什么?我更喜欢第一种解决方案,但我不确定使用多个调用来显示()是不是很好的做法。我想要的是易于维护和速度快。
<?php
$smarty->display('header.tpl');
$smarty->display('menu.tpl');
$smarty->display('article1.tpl');
$smarty->display('footer.tpl');
?>
或显示单个SMARTY模板,然后在模板内显示
{include file="header.tpl"}
<body id={$pageid}>
{include file="menu.tpl"}
{include file="header_inner.tpl"}
Content of page
{include file="footer.tpl"}
推荐答案
如果您正在使用Smarty3(您应该这样做),请查看Inheritance和Template Inheritance。它允许您定义模板,就像您构建类一样--OOP风格。
如果您不能(或不想)使用TI,我建议使用{include}
方法。原因:
- 减少PHP与模板之间的接口
- 以更简单的方式允许output caching
- 允许$cache_modified_check进行基本
HTTP 304 Not Modified
开箱即用 - 可以(通过Smarty3)通过{include … inline}进行优化以减少文件系统I/O
- 可以通过$merge_compiled_includes(仍然减少文件系统I/O)进行一般优化(通过Smarty3)
多个Display()调用只有一个优点。您可以将数据分块推送到浏览器。这样,您就可以在呈现之前将刷新到浏览器。这使得浏览器甚至在收到整个文档之前就可以获取(阻止)脚本和css等资源。("以管道方式加载文档")
至于可维护性,我使用了TI和{Include}方法。永远不要调用多个Display()。如果有什么变化,我将不得不修改太多的脚本。
这篇关于多次调用Smarties Display()方法与使用Include的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文