0

各位开发者您好,

我目前在使用 ajax 按钮调用(或正常重定向或刷新)更新 CGridview 时遇到严重延迟,我可以使用 firebug 的控制台判断请求本身需要大约 399 毫秒,这还不错,但是当CGridview 已更新,我说的是 3941 MS(或 4.3 秒)只是为了更新视图,这对我来说非常糟糕!

所有 Yii 所需的扩展(例如 Memcache、PDO MySQL 和 APC)都已启用。我还提到了使用缓存方法通过添加来解决这个问题:

 $dependency = new CDbCacheDependency('SELECT MAX(lu_date) FROM {{issues}}');
 return new CActiveDataProvider(Issue::model()->cache(3600, $dependency, 4), array(
        'criteria' => $criteria,
        'pagination' => array('pageSize' => 20,
        ),
        'sort' => array('defaultOrder' => 'c_date DESC')
    ));

不幸的是,没有改进,请注意,我目前使用延迟加载在 CGridview 中实现和调用了超过 5 个关系。这可能是问题所在吗?我当前的服务器是 LAMP - 基于 Linux

感谢您花时间阅读本文,非常欢迎任何建议或意见:)

4

1 回答 1

0

因为您有 5 个关系,所以您正在使用延迟加载进行 1+5*20 = 101 个查询。您应该尝试急切加载:

Issue::model()->with('relation1', 'relation2', 'deep.relation3')
于 2013-06-11T16:40:36.487 回答