我只是好奇 CGridView 在 Yii Framework 中的表现。我用 Yii 构建了一个简单的应用程序。在模型的管理页面上,简单地列出所有记录,分页 (30/page) 和自定义排序,到目前为止效果很好。
但我发现渲染 CGridView 需要 4-5 秒。在 4-5 秒内呈现 30 条记录页面是否正常?感觉有点慢啊!因为它不是一个复杂的表,只有 8 列。生成的 SQL 查询运行速度很快(在 2-3 毫秒内完成),尽管包括一些关系。
我google了很多优化,找到了这个官方文档: http ://www.yiiframework.com/doc/guide/1.1/en/topics.performance
专注于CGridView的问题,我尝试使用缓存,发现COutputCache是一个非常好的帮手。
我的做法是在Controller的filter()函数中添加COutputCache:
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
array( 'COutputCache+admin,_lists', 'duration' => 600,'varyByParam'=>array('sort','page'), ),
);
}
您可以添加普通视图页面和部分页面,以秒为单位设置过期时间,并告诉 Yii 检测缓存更改的参数。
当您重新访问页面时,这会很有帮助,包括排序和分页。将页面渲染时间降低到40-50 毫秒,这太棒了!
但是我还没有找到加速第一次渲染的好方法。你有什么好的建议吗?