【发布时间】:2012-12-20 10:42:26
【问题描述】:
我想知道是否有人可以向我解释当我们调用“渲染”时会发生什么。
让我介绍一下我的问题:
这是我的行动:
public function actionIndex()
{
$new_user = new CustomUser;
$new_person = new CustomPerson;
$tab_person = $this->getListPerson();
$this->render('index',array('tab'=>$tab_person,
'user'=>$new_user,
'person'=>$new_person));
}
这是我的索引视图:
.
.
.
</p> <br/>
<?php $this->renderPartial('person-form', array('person'=>$person,
'user' =>$user ));
?>
所以我的问题是加载页面时间很长。 如果我放一个
死(“死”);
在我的 actionIndex 中渲染之前或在我的视图结束时(在 renderPartial 之后),执行速度非常快。我会在 0.3 秒后看到“死”(如果我把声明放在它的末尾,我会看到我的索引页)。但是,如果我在渲染之后放置它或者我不放置它,那么我的页面将会在 4-5 秒内正确加载。
所以我想我不太了解渲染后会发生什么。如果我在查看页面结束时停止执行,我重复一遍,它非常快,但在我的操作结束时它非常慢。我考虑过 js 和 css,但在查看后我什么也没看到,Firebug 告诉我这些文件加载得非常快。 如果我将“die()”语句放在布局 main.php 的末尾,它也非常快。
所以我知道渲染会显示页面并将其包装在布局中,但是还有其他可能会使操作变得非常缓慢的事情吗?
如果有人对我的问题有任何想法,我将不胜感激。
对不起,如果我做错了,英语不是我的母语。
感谢您阅读我,祝您有美好的一天:)
迈克尔
【问题讨论】:
-
见yiiframework.com/wiki/249/understanding-the-view-rendering-flow。使用调试器单步执行代码以查看发生了什么,使用分析器查看哪些部分花费的时间最多。
-
要快速回答您的问题,请查看 DCoder 链接底部的箭头图。本质上,您的内容是由内而外构建的(基本视图和 renderPartials,然后是布局,然后是 CSS/JS
标签: performance yii render