Rumah >rangka kerja php >YII >Paging data dalam rangka kerja Yii: Mengoptimumkan paparan data
Dengan perkembangan pesat Internet, data berkembang dengan lebih pantas dan pantas. Dalam aplikasi web, halaman data adalah salah satu alat yang diperlukan untuk meningkatkan pengalaman pengguna. Dalam rangka kerja Yii, halaman data mudah dilaksanakan. Artikel ini akan memperkenalkan halaman data dalam rangka kerja Yii dan cara mengoptimumkan paparan data apabila jumlah data adalah besar.
1. Paging data dalam rangka kerja Yii
1.1 Kelas paging
Dalam rangka kerja Yii, fungsi paging dikapsulkan dalam kelas CPagination. Kelas CPagination menyediakan kaedah biasa berikut:
'limit' => $pagination->getLimit(), 'offset' => $pagination->getOffset(),));Akhir sekali, kita juga perlu menggunakan kaedah getPages dalam fail paparan untuk mendapatkan kod HTML halaman:
<?php $this->widget('CLinkPager', array( 'pages' => $pagination, )); ?>
$penomboran->pageSize = 20;
$penomboran->setCurrentPage($_GET['halaman']);
$this->render('index', array(
'users' => User::model()->findAll(array( 'limit' => $pagination->getLimit(), 'offset' => $pagination->getOffset(), )), 'pagination' => $pagination,));Dalam fail paparan, kami menggunakan yii-ajax-linkpager-widget untuk menggantikan kawalan CLinkPager . Apabila pengguna mengklik pada pautan halaman, gunakan Ajax untuk mengemas kini data:
<?php $this->renderPartial('_userlist', array('users' => $users)); ?>
<?php $this->widget('ext.yii-ajax-linkpager-widget.EAjaxLinkPager', array( 'ajaxUpdate' => 'userlist', 'pages' => $pagination, )); ?>
{
// 处理分页请求,返回分页数据 $pagination = new CPagination(10000); $pagination->pageSize = 20; $pagination->setCurrentPage($_GET['page']); $users = User::model()->findAll(array( 'limit' => $pagination->getLimit(), 'offset' => $pagination->getOffset(), )); $this->renderPartial('_userlist', array('users' => $users));
}
{
// 缓存时间为10分钟 $cacheId = __CLASS__.__METHOD__.md5(Yii::app()->user->id); $cacheTime = 10*60; if(!$this->beginCache($cacheId, array( 'duration' => $cacheTime, ))) { $pagination = new CPagination(10000); // ... $users = User::model()->findAll(array( 'limit' => $pagination->getLimit(), 'offset' => $pagination->getOffset(), )); $this->render('index', array( 'users' => $users, 'pagination' => $pagination, )); $this->endCache(); }
}
Atas ialah kandungan terperinci Paging data dalam rangka kerja Yii: Mengoptimumkan paparan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!