我想知道,当我们称之为“呈现”时,是否有人能解释我到底发生了什么。
让我向你介绍我的问题:
这是我的行动:
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的末尾,它也非常快。

因此,我知道渲染会显示页面并将其包装在布局中,但是还有什么可能会使操作非常慢吗?
如果有人知道我的问题,我会非常感激的。
对不起,如果我犯了错误,英语不是我的母语。
谢谢你读我的文章,祝你今天愉快
米查尔
发布于 2013-01-07 01:59:11
据我理解,它不应该加载慢。也许你的页面上还有别的东西。尝试在屏幕上启用日志:http://www.yiiframework.com/wiki/58/sql-logging-and-profiling-in-firebug-yii-1-1/。查看视图呈现后是否有任何执行。
发布于 2013-01-07 10:08:16
原因之一,这可能看起来令人困惑,因为它可能不是“渲染”是缓慢的。加载模型和关系可能很慢,但默认情况下它们是延迟加载的。这意味着在访问请求它们的代码之前不会查询DB,这通常在视图中。
这也许可以解释为什么呈现速度慢。因此,就像其他人说的那样,您需要启用日志记录,无论是在页面中还是日志到firebug。然后,您可以检查任何缓慢的查询或组件。
https://stackoverflow.com/questions/14183478
复制相似问题