Apprenez à configurer correctement vos listes avec le générateur CRUD pour éviter les temps de chargement trop longs.
Avec PHP CRUD Generator, le temps de chargement des listes READ de votre panneau d'administration devrait généralement être rapide et ne pas dépasser quelques secondes au maximum. Des temps de chargement anormalement longs sont dus soit à la configuration de vos filtres, soit au nombre de requêtes nécessaires pour afficher les données.
Dans les deux cas, la solution est simple à mettre en œuvre en utilisant le générateur CRUD. Voici comment procéder pour réduire votre temps de chargement.
Lorsque vous ajoutez un filtre d'enregistrement à votre liste READ, le programme envoie la requête SQL et récupère tous les enregistrements de la base de données. Il génère ensuite un champ de sélection
qui comprendra autant d'options que vous avez d'enregistrements.
C'est parfait pour un tableau qui contient quelques dizaines, voire quelques centaines d'enregistrements, mais si votre tableau en contient des milliers, cela augmentera considérablement le temps de chargement de la page.
Dans ce cas, vous devez activer le chargement Ajax lorsque vous créez votre filtre à partir du générateur CRUD.
Si le chargement Ajax est activé, la page chargera un simple champ de saisie
lié à un plugin d'autocomplétion
. Le plugin récupérera les enregistrements à la demande pour l'autocomplétion. De cette manière, vous évitez de charger des données lourdes et inutiles lors du chargement de votre page principale.
Lorsque vous chargez une liste d'enregistrements dans votre base de données, le programme effectue les requêtes suivantes :
Si vous avez activé les relations externes, le programme effectuera également les requêtes suivantes :
Par exemple, si vous avez une table de films liée à une table d'acteurs et à une table de catégories, et que vous avez activé l'affichage des noms et des catégories d'acteurs dans la liste des films, le programme effectuera deux requêtes pour chaque film afin de récupérer les noms et les catégories d'acteurs.
Si vous affichez 20 films par page, vous obtenez ceci :
Total : 42 requêtes (+ filtres)
En général, même s'il y a un nombre relativement important de requêtes, cela ne pose pas de problème car ces requêtes ne renvoient qu'un nombre limité d'enregistrements. Elles sont donc efficaces et rapides. Si toutefois vous avez des temps de chargement trop longs, vous pouvez désactiver l'affichage de certaines relations externes dans la liste principale et les afficher sur une autre page. Vous pouvez également limiter le nombre d'enregistrements affichés par page.
Cela ne concerne pas le PHPCG, mais directement la structure de votre base de données. Ajoutez un index à chaque champ qui sera utilisé régulièrement dans vos requêtes. Le moteur MySQL est plus rapide et plus efficace avec des champs indexés.
Pour indexer vos champs :