设置
- CakePHP 2.3.5
- PHP 5.3.8
- 阿帕奇 2.2
- PostgreSQL 8.4
- Windows 7 专业版 x64
这是我项目中的很多情况之一,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 秒内执行。 我不知道为什么