0

「レンダリング」を呼び出すと正確に何が起こるかを誰かが説明してくれるかどうか知りたいです。

私の問題を紹介しましょう:

これは私の行動です:

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 秒後に "die" (およびステートメントを末尾に置くとインデックス ページ) が表示されます。しかし、レンダリングの後に配置した場合、または配置しなかった場合、ページは正しく読み込まれますが、4 ~ 5 秒かかります。

そのため、レンダリング後に何が起こるかをよく理解していなかったと思います。繰り返しますが、ビュー ページの最後で実行を停止すると非常に高速ですが、アクションの最後では非常に遅くなります。js と css について考えましたが、調べたところ何も表示されず、Firebug はこれらのファイルが非常に高速にロードされることを示しています。また、レイアウト main.php の最後に「die()」ステートメントを配置すると、非常に高速になります。

ここに画像の説明を入力

だから私は render がページを表示してレイアウトにラップすることを知っていますが、アクションを非常に遅くする可能性のある別のことがありますか?

誰かが私の問題について考えを持っているなら、私はとても感謝しています.

間違いがあったらごめんなさい、英語は私の母国語ではありません。

私を読んでくれてありがとう、良い一日を:)

マイケル

4

2 に答える 2

0

これが紛らわしく見える理由の 1 つは、遅いのは「レンダリング」ではない可能性があるためです。モデルとリレーションのロードが遅い可能性がありますが、デフォルトでは遅延ロードされます。これは、DB を要求するコードがヒットするまで、DB が照会されないことを意味します。これは、多くの場合、ビューに表示されます。

これは、レンダリングが遅い理由を説明している可能性があります。他の人が言ったように、ページでログを有効にするか、firebug にログを記録する必要があります。その後、遅いクエリやコンポーネントを確認できます。

于 2013-01-07T10:08:16.620 に答える
0

私の理解では、読み込みが遅くなることはありません。ページに何か他のものがロードされている可能性があります。画面でログを有効にしてみてください: http://www.yiiframework.com/wiki/58/sql-logging-and-profiling-in-firebug-yii-1-1/。ビューがレンダリングされた後に実行されるものがあるかどうかを確認します。

于 2013-01-07T01:59:11.183 に答える