Maison cadre php YII Pagination des données dans le framework Yii : optimisation de l'affichage des données

Pagination des données dans le framework Yii : optimisation de l'affichage des données

Jun 21, 2023 pm 01:51 PM
yii框架 数据分页 优化展示

Avec le développement rapide d'Internet, les données croissent de plus en plus vite. Dans les applications Web, la pagination des données est l'un des outils nécessaires pour améliorer l'expérience utilisateur. Dans le framework Yii, la pagination des données est facile à mettre en œuvre. Cet article présentera la pagination des données dans le framework Yii et comment optimiser l'affichage des données lorsque la quantité de données est importante.

1. Paging des données dans le framework Yii

1.1 Classe Paging

Dans le framework Yii, la fonction de pagination est encapsulée dans la classe CPagination. La classe CPagination fournit les méthodes courantes suivantes :

  • setPageVar : définit le nom du paramètre de pagination, la valeur par défaut est « page »
  • getPageCount : obtient le nombre total de pages
  • getItemCount : obtient le nombre d'éléments de données ;
  • getLimitOffset : obtenez l'instruction LIMIT.. .OFFSET... ;
  • getPages : obtenez le code HTML de la pagination.
1.2 Utilisation de CPagination

Supposons que nous ayons un modèle utilisateur User, qui contient 10 000 éléments de données qui doivent être affichés dans des pages. Tout d’abord, nous devons instancier l’objet CPagination dans la méthode actionIndex dans UserController :

$pagination = new CPagination(10000);

Ensuite, nous pouvons définir la quantité de données pour chaque page :

$pagination->pageSize = 20;

Ou utilisez la valeur par défaut :

$pagination->pageSize = Yii::app()->user->pageSize;

Ensuite, nous devons calculer le numéro de page actuel :

$pagination- >setCurrentPage($_GET['page']);

Enfin, nous devons afficher les données en fonction du numéro de page actuel et de la quantité de données sur chaque page :

$users = User ::model()->findAll (array(

'limit' => $pagination->getLimit(),
'offset' => $pagination->getOffset(),
Copier après la connexion

));

Enfin, nous devons également utiliser la méthode getPages dans le fichier de vue pour obtenir le code HTML de pagination :

<?php $this->widget('CLinkPager', array(
    'pages' => $pagination,
)); ?>
Copier après la connexion

2. Optimiser l'affichage des données

Lorsque la quantité de données est importante, la méthode de pagination conventionnelle peut ralentir le chargement des pages et dégrader l'expérience utilisateur. Voici deux façons d’optimiser l’affichage des données.

2.1 Paging Ajax

L'utilisation de la pagination Ajax peut éviter le problème de l'actualisation de la page entière à chaque fois que vous changez de page. Lorsque l'utilisateur clique sur le lien de pagination, une requête Ajax est envoyée pour mettre à jour uniquement la partie qui doit être mise à jour, augmentant considérablement la vitesse de rafraîchissement de la page.

$pagination = new CPagination(10000);

$pagination->pageSize = 20;
$pagination->setCurrentPage($_GET['page']);

$this->render('index' , array(

'users' => User::model()->findAll(array(
    'limit' => $pagination->getLimit(),
    'offset' => $pagination->getOffset(),
)),
'pagination' => $pagination,
Copier après la connexion

));

Dans le fichier de vue, nous utilisons yii-ajax-linkpager-widget pour remplacer le contrôle CLinkPager. Lorsque l'utilisateur clique sur le lien de pagination, utilisez Ajax pour mettre à jour les données :

<?php $this->renderPartial('_userlist', array('users' => $users)); ?>
Copier après la connexion


<?php $this->widget('ext.yii-ajax-linkpager-widget.EAjaxLinkPager', array(
    'ajaxUpdate' => 'userlist',
    'pages' => $pagination,
)); ?>
Copier après la connexion

Dans le dossier _controller, nous devons ajouter une méthode actionPage pour gérer les requêtes de pagination dans cette méthode :

public function actionPage()

{

// 处理分页请求,返回分页数据
$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));
Copier après la connexion

}

2.2 Mise en cache des données de pagination

Cache pagination La mise en cache des données sur un serveur de cache peut améliorer considérablement les performances de pagination. Lorsque l'utilisateur demande des données de pagination, vérifiez d'abord si le serveur de cache a des données en cache, et si c'est le cas, renvoyez les données directement, sinon, interrogez la base de données, stockez les données dans le serveur de cache, puis renvoyez les données.

Nous pouvons utiliser le mécanisme de mise en cache fourni par le framework Yii. Utilisez COutputCache dans la méthode actionIndex du contrôleur pour mettre en cache les données de pagination :

public function actionIndex()

{

// 缓存时间为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();
}
Copier après la connexion

}

Lorsque l'utilisateur demande des données de pagination, si des données mises en cache existent dans le serveur de cache, les données mises en cache seront renvoyées directement ; Sinon, la base de données est interrogée, les données sont stockées dans le serveur de cache et les données sont renvoyées.

En résumé, la fonction de pagination de données du framework Yii est facile à mettre en œuvre et prend en charge une variété de méthodes d'optimisation, ce qui peut grandement améliorer l'expérience utilisateur des applications Web. Qu'il s'agisse d'une petite quantité de données ou d'une grande quantité de données, la pagination des données peut être facilement mise en œuvre.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser le framework Yii en PHP Comment utiliser le framework Yii en PHP Jun 27, 2023 pm 07:00 PM

Avec le développement rapide des applications Web, le développement Web moderne est devenu une compétence importante. De nombreux frameworks et outils sont disponibles pour développer des applications web efficaces, parmi lesquels le framework Yii est très populaire. Yii est un framework PHP hautes performances basé sur des composants qui utilise les derniers modèles de conception et technologies, fournit des outils et des composants puissants et est idéal pour créer des applications Web complexes. Dans cet article, nous verrons comment utiliser le framework Yii pour créer des applications Web. Installez d'abord le framework Yii,

Développement d'API RESTful dans le framework Yii Développement d'API RESTful dans le framework Yii Jun 21, 2023 pm 12:34 PM

Yii est un framework MVC hautes performances basé sur PHP. Il fournit un ensemble très riche d'outils et de fonctions pour prendre en charge le développement rapide et efficace d'applications Web. Parmi eux, la fonction RESTfulAPI du framework Yii a attiré de plus en plus l'attention et l'amour des développeurs, car l'utilisation du framework Yii peut facilement créer des interfaces RESTful hautes performances et facilement évolutives, offrant un support solide pour le développement d'applications Web. Introduction à RESTfulAPI RESTfulAPI est un

Comment utiliser le framework Hyperf pour la pagination de données Comment utiliser le framework Hyperf pour la pagination de données Oct 20, 2023 am 11:25 AM

Comment utiliser le framework Hyperf pour la pagination des données Introduction : La pagination des données est très courante dans le développement Web réel. La pagination peut permettre aux utilisateurs de parcourir plus facilement de grandes quantités de données. Hyperf est un framework PHP hautes performances qui fournit un ensemble puissant de fonctionnalités et de composants. Cet article explique comment utiliser le framework Hyperf pour la pagination des données et donne des exemples de code détaillés. 1. Préparation : Avant de commencer, vous devez vous assurer que le framework Hyperf a été correctement installé et configuré. Peut être fait via Composer

Étapes pour mettre en œuvre la mise en cache des pages Web et la segmentation des pages à l'aide du framework Yii Étapes pour mettre en œuvre la mise en cache des pages Web et la segmentation des pages à l'aide du framework Yii Jul 30, 2023 am 09:22 AM

Étapes pour mettre en œuvre la mise en cache et la segmentation de pages Web à l'aide du framework Yii Introduction : Au cours du processus de développement Web, afin d'améliorer les performances et l'expérience utilisateur du site Web, il est souvent nécessaire de mettre en cache et de fragmenter la page. Le framework Yii fournit de puissantes fonctions de mise en cache et de mise en page, qui peuvent aider les développeurs à mettre en œuvre rapidement la mise en cache et la segmentation de pages Web. Cet article explique comment utiliser le framework Yii pour implémenter la mise en cache et la segmentation de pages Web. 1. Activez la mise en cache des pages Web Dans le framework Yii, la mise en cache des pages Web peut être activée via le fichier de configuration. Ouvrez le fichier de configuration principal co

Créer un site Web de guide de jeu en utilisant le framework Yii Créer un site Web de guide de jeu en utilisant le framework Yii Jun 21, 2023 pm 01:45 PM

Ces dernières années, avec le développement rapide de l'industrie du jeu, de plus en plus de joueurs ont commencé à rechercher des stratégies de jeu pour les aider à réussir. Par conséquent, la création d’un site Web de guides de jeu peut permettre aux joueurs d’obtenir plus facilement des guides de jeu, et en même temps, cela peut également offrir aux joueurs une meilleure expérience de jeu. Lors de la création d'un tel site Web, nous pouvons utiliser le framework Yii pour le développement. Le framework Yii est un framework de développement d'applications web basé sur le langage de programmation PHP. Il présente les caractéristiques d'une efficacité élevée, d'une sécurité et d'une forte évolutivité, et peut nous aider à créer un guide de jeu plus rapidement et plus efficacement.

Pagination et tri des données ThinkPHP6 : réalisation de l'affichage par pagination des données Pagination et tri des données ThinkPHP6 : réalisation de l'affichage par pagination des données Aug 25, 2023 pm 11:04 PM

Pagination et tri des données ThinkPHP6 : réaliser l'affichage paginé des données Dans le développement Web, nous rencontrons souvent des situations où une grande quantité de données doit être affichée. Si toutes les données sont affichées en même temps, non seulement le chargement de la page sera lent, mais cela sera également défavorable à la navigation et à la recherche des utilisateurs. Par conséquent, la pagination des données est devenue un moyen courant de résoudre ce problème. Cet article expliquera comment utiliser le framework ThinkPHP6 pour implémenter l'affichage par pagination des données et fournira des exemples de code correspondants. 1. La pagination des données ThinkPHP6 fournit des données puissantes

Plugin de base de données React Query : meilleures pratiques pour la pagination des données Plugin de base de données React Query : meilleures pratiques pour la pagination des données Sep 26, 2023 am 11:24 AM

Plugin de base de données ReactQuery : meilleures pratiques pour la mise en œuvre de la pagination des données Introduction ReactQuery est une puissante bibliothèque de gestion d'état utilisée pour implémenter la gestion des données dans les applications React. Il fournit un moyen simple et intuitif de gérer l'acquisition, la mise en cache, la mise à jour et la synchronisation des données, et convient parfaitement à la gestion des scénarios de pagination de données. Dans cet article, nous explorerons les meilleures pratiques de pagination des données à l'aide de ReactQuery, tout en fournissant quelques exemples de code concrets. Concernant

Middleware du framework Yii : prise en charge de plusieurs stockages de données pour les applications Middleware du framework Yii : prise en charge de plusieurs stockages de données pour les applications Jul 28, 2023 pm 12:43 PM

Middleware du framework Yii : fournir une prise en charge de plusieurs stockages de données pour les applications Introduction Le middleware (middleware) est un concept important dans le framework Yii, qui fournit une prise en charge de plusieurs stockages de données pour les applications. Le middleware agit comme un filtre, insérant du code personnalisé entre les requêtes et les réponses d'une application. Grâce au middleware, nous pouvons traiter, vérifier, filtrer les demandes, puis transmettre les résultats traités au middleware suivant ou au gestionnaire final. Le middleware du framework Yii est très simple à utiliser

See all articles