CakePHP 2.x性能 - 我可以在Controller完成数据处理之前将View带给用户吗?

时间:2017-11-28 16:43:15

标签: performance cakephp cakephp-2.0

我有一个CakePHP 2.x应用程序处理旅游机构/运营商的日常销售和运营。

销售模型与几乎所有其他模型进行交互,因为它需要来自客户的客户信息,来自客户的代理商信息,来自乘客的乘客信息(并不总是与客户相同),其付款信息在付款中,旅游信息在旅游,航班信息等等。

基本上,当销售人员导航到特定销售时,他们需要屏幕向他们展示来自其他模型的大量信息。

这使得屏幕加载速度变慢。

我正在避免使用缓存,因为这是一个实地启动类型的代理商,这意味着他们不只是销售,他们实际上是在自己进行操作。在这种环境中,信息始终需要是最新的。

所以,问题是:

在控制器完成处理每个数据之前,有没有办法让View将用户带到用户手中?

像:

<?php

class SalesController extends AppController {

  public function show($id) {


    // Get easy/quick data
    // Take user to the View


    // Get the more time consuming data
    // Feed it to the View as it becomes ready


  }

}

我一直在想我应该用简单的数据调用页面然后在加载后加入更复杂的数据,使用一些Ajax和javascript,但这是框架的最佳用途吗?

此时平均销售的屏幕需要大约10000毫秒才能完全加载。超过6000毫秒的时间是空闲帧。这意味着我的控制器在后台运行,对吧?

1 个答案:

答案 0 :(得分:1)

如果不打破&#34; 控制器永远不应该回显数据&#34;这很可能是不可能的。规则,违反它可能会导致各种各样的问题,比如测试环境中没有返回的数据,没有发送标题,没有完全读取数据等等。

如果您知道自己在做什么,并且了解其影响,那么您可能会侥幸成功,但AJAX解决方案很可能是更安全的解决方法。

在任何情况下,我都不会做任何事情,然后才能确定 为什么要花费时间,并确定是否有办法加速解决问题的根源!