首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii:渲染过程

Yii:渲染过程
EN

Stack Overflow用户
提问于 2013-01-06 15:15:00
回答 2查看 1.9K关注 0票数 0

我想知道,当我们称之为“呈现”时,是否有人能解释我到底发生了什么。

让我向你介绍我的问题:

这是我的行动:

代码语言:javascript
复制
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));
}

,这是我的索引视图:

代码语言:javascript
复制
.
. 
.
</p> <br/>   
<?php $this->renderPartial('person-form', array('person'=>$person,
                                                'user' =>$user ));
?>

所以我的问题是加载页面的时间很长。如果我把

死(死);

在我的actionIndex中呈现之前,或者在视图的末尾(在renderPartial之后),执行非常快。在0.3秒后,我会看到“死”(如果我将语句放在它的末尾)(以及我的索引页)。但是,如果我把它放在我的渲染后或我不放,那么我的页面将正确加载,但在4-5秒钟。

所以我想我不太明白渲染后会发生什么。我重复一遍,如果我在视图页面的末尾停止执行,它会非常快,但是在我的操作结束时,它会非常慢。我想到了js和css,但是在查看之后,我什么也没看到,Firebug向我展示了这些文件加载得非常快。如果我将"die()“状态放在布局main.php的末尾,它也非常快。

因此,我知道渲染会显示页面并将其包装在布局中,但是还有什么可能会使操作非常慢吗?

如果有人知道我的问题,我会非常感激的。

对不起,如果我犯了错误,英语不是我的母语。

谢谢你读我的文章,祝你今天愉快

米查尔

EN

回答 2

Stack Overflow用户

发布于 2013-01-07 01:59:11

据我理解,它不应该加载慢。也许你的页面上还有别的东西。尝试在屏幕上启用日志:http://www.yiiframework.com/wiki/58/sql-logging-and-profiling-in-firebug-yii-1-1/。查看视图呈现后是否有任何执行。

票数 0
EN

Stack Overflow用户

发布于 2013-01-07 10:08:16

原因之一,这可能看起来令人困惑,因为它可能不是“渲染”是缓慢的。加载模型和关系可能很慢,但默认情况下它们是延迟加载的。这意味着在访问请求它们的代码之前不会查询DB,这通常在视图中。

这也许可以解释为什么呈现速度慢。因此,就像其他人说的那样,您需要启用日志记录,无论是在页面中还是日志到firebug。然后,您可以检查任何缓慢的查询或组件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14183478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档