Rumah > Artikel > rangka kerja php > 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: dc6dce4a544fdca2df29d5ac0ea9906b
<?php $this->widget('CLinkPager', array( 'pages' => $pagination, )); ?>16b28748ea4df4d9c2150843fecfba682. Optimumkan paparan dataApabila jumlah data adalah besar, kaedah halaman konvensional boleh menyebabkan pemuatan halaman menjadi perlahan dan pengalaman pengguna menurun. Berikut ialah dua cara untuk mengoptimumkan paparan data. 2.1 paging Ajax Menggunakan paging Ajax boleh mengelakkan masalah menyegarkan keseluruhan halaman setiap kali anda menukar halaman. Apabila pengguna mengklik pada pautan paging, permintaan Ajax dihantar untuk mengemas kini hanya bahagian yang perlu dikemas kini, meningkatkan kelajuan penyegaran halaman. $penomboran = new CPagination(10000);
$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: d44d5cbb027ad62f803fefd2a6a7996a
<?php $this->renderPartial('_userlist', array('users' => $users)); ?>16b28748ea4df4d9c2150843fecfba68
389ecfc928ec06e224ceb533b61fd4be
<?php $this->widget('ext.yii-ajax-linkpager-widget.EAjaxLinkPager', array( 'ajaxUpdate' => 'userlist', 'pages' => $pagination, )); ?>
16b28748ea4df4d9c2150843fecfba68
{
// 处理分页请求,返回分页数据 $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!