0

設定

  • CakePHP 2.3.5
  • PHP5.3.8
  • アパッチ 2.2
  • PostgreSQL 8.4
  • Windows 7 プロフェッショナル x64

これは、私のプロジェクトで多くの状況の 1 つであり、CakePHP は単純なビューをレンダリングするのに 1 秒以上必要です。考えられるすべてのリクエストをテストします... ajax、json、get、post、put、delete...それぞれで、CakePHPは遅いです。

Obs .: 私はローカルホストで作業しています: データベース、サーバー、git など。すべて私のマシンで。


問題 1)

私はこのコードを持っています:

$('#multiple').delegate('.plus-payment', 'click', 
  function(event) {
    event.preventDefault();

    $.ajax({
      url: "<?php echo $this->Html->url(array('controller' => 'authorizations', 'action' => 'credit_card', $table_num, $check_num)); ?>",
      data: {},
      dataType: 'html',
      success: function(data) {
        
        $('#multiple').append(data);
        return false;

      }
    });
      }
);

アクション:

public function credit_card($table_num, $check_num)
{
  
if ($this->request->is('ajax')) {

  $this->layout = 'ajax';
  $this->render('modal_credit_card');

} elseif ($this->request->is('post')) {

これを、このビューと呼びます:

<div class="payment">
    <div class="swipe">
        <label class="checkbox">
            <?php echo $this->Form->checkbox('Authorization.swipe.', array('value' => 'by_hand', 'label' => false, 'div' => false, 'hiddenField' => false, 'class' => 'swipeoff')) ?><?php echo __('Manual') ?>
        </label>
    </div>

    <?php echo $this->Form->input('Authorization.card_number.', array('label' => false, 'div' => false, 'placeholder' => __('Swipe Card'))) ?>
    <?php echo $this->Form->input('Authorization.exp_date.', array('required' => false, 'label' => false, 'div' => false, 'class' => 'expdate input-mini', 'placeholder' => __('Validade'))) ?>

    <span class="input-prepend">
        <span class="add-on">$</span>
        <?php echo $this->Form->input('Authorization.amount.', array('label' => false, 'div' => false, 'class' => 'input-small', 'placeholder' => __('Valor'))) ?>
    </span>


    <a href='#' class="btn btn-success plus-payment"><i class="icon icon-plus icon-white"></i></a>
    <a href='#' class="btn btn-danger remove-payment"><i class="icon icon-trash icon-white"></i></a>
    <hr>
</div>

CakePHP がビューを返すのに 2~3 秒かかります。

なぜ?

単なるビューであり、データベース接続もクエリも条件もありません...レンダリングするだけです。

Obs.: PHP 5.4.8 でテストされ、リクエストは 0.2~1 秒で実行されます。 どうしてか分かりません

4

1 に答える 1

1

デバッグを 0 に変更しますapp/Config/bootstrap.php (36 行目あたり):

Configure::write('debug', 0);

(開発目的の2デフォルト)の場合、更新されたスキーマをチェックするためにすべてのテーブルを照会するなど、多くの追加プロセスを実行します...など.

そうでない場合は、DebugKitを使用して、実行中のすべての詳細だけでなく、個々のプロセス/クエリなどにかかる時間などを表示し、問題がどこにあるのか、何が問題を引き起こしているのかを見つけることができます。実行するのが最も長い。

于 2013-05-17T20:11:55.237 に答える