我需要加载配置文件布局,然后将所有配置文件视图加载到该布局中,而无需重新加载布局,以便我可以在客户端浏览器中缓存大型json对象,以允许数据可用在后续视图中,无需为配置文件控制器中的每个视图执行新的HTTP请求。
是否可以加载布局模板,然后通过禁用布局模板将视图加载到布局模板中,以便布局模板永远不会重新加载,只有视图在内?
另一种选择是在布局中放置一个iframe,然后通过禁用它们的布局将视图加载到iframe中,以便只渲染视图。
只需要知道这是否可能以及最佳选择是什么。
提前致谢:)
答案 0 :(得分:1)
在您不想要布局的视图中尝试:
$this->_helper->layout->disableLayout();
这样可以防止显示布局。
如果由于某种原因,您希望来自同一个控制器的同一个操作多次调用,但是加载一次布局(必须是更好的方式来组织自己),但您总是可以尝试:
public function indexAction()
{
static $firstTime = true;
if($firstTime){
$firstTime = false;
} else {
$this->_helper->layout->disableLayout(); //disable layout
}
}
我会试着给出一个更好的例子: 假设你有一个控制器foo有3个视图:索引,联系人,新闻。
class Foo_Controller extends Zend_Controller
{
//...
public function indexAction()
{
//normal view layout loads
}
public function contactAction()
{
//normal view layout loads
}
public function newsAction()
{
//no layout for this
$this->_helper->layout->disableLayout(); //disable layout
}
}
所以需要布局的视图有一个。那些不做的。除非你说布局但是真的想到别的东西然后Zend_View_Helpers_Layout你将发布一些代码来帮助我们帮助你!